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

nodewherestatusloadconnscpumemlive DOsassignedcheckpointsseen

Events