Durable execution is a published specification
The protocol asks for two primitives: durable storage and an atomic compare-and-swap. Three storage paradigms have them — SQL databases, a wide-column store, and a message broker. The four implementations below are built on those three.
SQL
Postgres · SQLite · MySQL
The reference implementation. A single statically-linked binary that speaks the HTTP/JSON protocol, SQLite for local dev and Postgres or MySQL in production.
Apache 2.0
Get started →Message broker
JetStream · NATS-native
An implementation on NATS JetStream where NATS is both storage and transport. Workers reach it over a NATS connection, so it needs a NATS-aware client.
Source-available · BUSL-1.1
Read more about NATS →Wide-column
ScyllaDB · CQL
An implementation on ScyllaDB, one row per promise across many small partitions. It speaks the same HTTP/JSON protocol as the core server, so existing SDKs work unchanged.
Source-available · BUSL-1.1
Read more about ScyllaDB →SQL
Postgres · pg_cron
An implementation that is one SQL file — the database is the server, and Postgres becomes storage, queue, and timer at once. Where the core server uses Postgres, this one is Postgres.
Apache 2.0
Read more about Postgres →The specification is public. Implement it against your platform, or tell us what you run and we’ll help you get there.
We value your privacy
We use strictly necessary cookies to run this site. With your consent we also use Google Analytics to understand traffic. We do not load analytics until you choose to allow it. Privacy Policy.