Skip to content
Tech News
← Back to articles

Open Source Durable Objects for Postgres

read original get Designing Data-Intensive Applications by Martin Kleppmann → more articles
Why This Matters

A developer has open-sourced Solid Objects, a library that brings the Durable Objects programming model \u2014 single-identity actors with durable state and an ordered mailbox, processing one call at a time \u2014 to SQLite, PostgreSQL, or MySQL databases teams already operate. It targets the main objections to Cloudflare's Durable Objects: vendor lock-in, per-operation metered billing that can produce surprise bills, and self-hosted alternatives that require running a daemon on every node. The author notes Shopify independently published a similar architecture for inventory reservations, suggesting the pattern is converging across the industry.

Key Takeaways
Worth a Look

Designing Data-Intensive Applications by Martin Kleppmann — If durable state, single-writer objects, and Postgres-backed consistency are your daily puzzles, Kleppmann's book is the definitive tour of the tradeoffs behind them. It walks through replication, consensus, and storage engines in plain language, so the design choices in libraries like Solid Objects make a lot more sense.

See Designing Data-Intensive Applications by Martin Kleppmann on Amazon → Affiliate link — we may earn a commission on purchases, at no extra cost to you. Product picked by AI based on this article; it is not a tested recommendation.

Blog · September 8, 2026 Open source Durable Objects for Postgres The Durable Objects programming model as a library, on the database you already run.

Durable Objects is a good model. One object, one identity, one call at a time, and state that outlives the request. Getting that model has meant taking on something else.

Lock-in. The model runs on one vendor. Leaving means rewriting the part that made it worth adopting.

The model runs on one vendor. Leaving means rewriting the part that made it worth adopting. Pricing you cannot predict. Every operation is metered. One runaway alarm loop billed a pre-launch developer $34,000 in eight days, with no users and no warning.

Every operation is metered. One runaway alarm loop billed a pre-launch developer $34,000 in eight days, with no users and no warning. A daemon to run. Self-hosted alternatives like celld trade the vendor for a process on every node, plus a bucket to replicate into.

Self-hosted alternatives like celld trade the vendor for a process on every node, plus a bucket to replicate into. One more stateful system. Something else to back up, monitor, and restore.

Solid Objects gives you the same model as a library. Each object has an identity, durable state, and an ordered mailbox, and all of it lives in the SQLite, PostgreSQL, or MySQL database you already run. No daemon, no broker, no account.

I shipped the first version two days before Shopify published the same architecture for inventory reservations. Same conclusion, reached separately.

Why I built this

An app I maintain ran a cron job every five minutes. Each run loaded every active account in the database to check whether any were due to shut down. One week of that came to 2,014 runs and 37 minutes of queue time. It turned up 8 whole accounts.

... continue reading