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