Series · 4 parts
celld
Durable Objects unbundled — what happens when a bucket becomes the durability layer, the coordination service, and the control plane all at once
celld is an early open-source project from Deno that reimplements Cloudflare's Durable Objects programming model on infrastructure you own. The project is young. The architecture is worth understanding regardless of whether the project survives.
The first post is the overview: what it means to give a named entity — an agent, a workflow, a chat room — its own compute, its own SQLite database, and a single owning node. The three that follow take apart the mechanisms that sketch glosses over:
- How a bucket arbitrates which node owns which cell, using nothing but conditional writes.
- How an acknowledged write survives losing the machine that accepted it — and why the bucket usually isn't what you wait for.
- How a fleet runs with no membership protocol, no failure detector, and no consensus service — and what that concentrates in one set of credentials.
One bucket, three jobs — durability, coordination, and control plane.
The through-line is a single question that outlives the implementation: what is the correct unit of state ownership in a distributed application? For systems dominated by long-lived autonomous entities, the answer may increasingly be the entity itself.
The Series
- 1
celld: Durable Objects, Unbundled
celld, a new open-source project from Deno, reimplements Cloudflare's Durable Objects model on infrastructure you own — and it's a good lens for asking what should actually own an AI agent's state.
- 2
How celld Turns Object Storage Into a Coordination Service
celld requires only four things from an object store — conditional create, conditional overwrite, read-after-write consistency, ranged reads — and builds cell ownership, epoch fencing, and self-fencing leases on top. Here's exactly how, and what it costs.
- 3
How celld Actually Achieves RPO Zero
celld claims a recovery point objective of zero against single-node failure — no acknowledged write is lost as long as the node holding it doesn't disappear before the bucket catches up. The mechanism isn't 'wait for S3 on every write.' It's closer to synchronous peer replication, with the bucket as backstop. Here's the actual write path, in full.
- 4
How celld Gets Rid of the Control Plane
celld runs a fleet with no membership protocol, no failure detector, and no consensus service. The bucket is doing that job too — which means the same bucket credentials that grant durability also grant total control of the fleet.