do-pool
Durable Objects, bin-packed into Cloudflare Containers
The same Durable Object classes run either as real Durable Objects or by the thousand inside workerd in a container. That's ~180× cheaper for objects that stay awake, with the same API, verified by 55 parity tests. Open a demo in two tabs, then flip the backend.
Start here
How it works →
An 11-step animated walkthrough: requests, where state lives, checkpoints, moves, sleep, alarms, sandboxes.
The honest part
Benchmarks & limits →
Cost, recovery times, density and throughput, plus what a real Durable Object does better.
Dynamic code
Dynamic apps →
Publish a Durable Object class at runtime and run it as a facet: on Cloudflare, pooled, or in its own sandbox.
Demos
Live cursors · pool20 Hz batched presence; click to stamp (persisted)
Live cursors · real DOSame class on Cloudflare Durable Objects
Collaborative editor · poolYjs + CodeMirror over y-websocket
Collaborative editor · real DOSame class on Cloudflare Durable Objects
AI chat rooms · poolWorkers AI, KV, R2, another Worker and a lobby DO, all used from a pooled object
AI chat rooms · real DOSame class, native bindings: compare the per-call timings
The pool, live
| node | where | status | load | conns | cpu | mem | live DOs | assigned | checkpoints | seen |
|---|