Brought to you by Resonate

Durable Execution on NATS

Everything durable execution needs, expressed in the primitives NATS already gives you — JetStream for state, pub/sub for transport.

Source-available · BUSL-1.1Built by Resonate HQ

If NATS is already your backbone, durable execution doesn't have to be a separate system beside it. Resonate HQ built a durable-execution server on NATS JetStream: JetStream KV holds the state, pub/sub moves the messages, and the broker you already run is the only dependency.

Durable execution is a protocol, not a product

NATS is now a durable-execution provider.

Any platform that can provide durable storage and an atomic compare-and-swap can implement the Resonate protocol — and NATS does it natively. No layers borrowed from anywhere else: NATS is the provider.

Why NATS

Durable execution without leaving the NATS model.

NATS-native, end to end

JetStream KV holds the state, pub/sub moves the messages, and durable timers fire via JetStream's built-in message scheduler. There's no second datastore, transport, or scheduling service besides the broker you already operate.

Partitions the NATS way

Workload distribution maps onto the NATS partitioning model, and the atomic compare-and-swap and outbox primitives the protocol needs are built directly on JetStream KV.

NATS-native

It speaks NATS, end to end.

Storage, transport, scheduling — all of it stays inside NATS. To connect a worker, bring a NATS connection and hand it to NatsNetwork in the Resonate SDK — the rest of the API is unchanged. TypeScript and Python today; for other languages or HTTP bridging, tell us what your stack needs when you sign up.

What's true today

No surprises. Here’s exactly where it stands.

License
Source-available under BUSL-1.1 — free for development and evaluation. Each version converts to Apache 2.0 on 2030-07-01.
Maturity
Early. The protocol is implemented end to end, but there are no production reference deployments yet, search is unimplemented, and test coverage is unit tests rather than the crash and linearizability suites the ScyllaDB implementation ships. Sign up below to be among the first to run it in production.
Authentication
The server has no auth layer of its own. Everything protecting it comes from your NATS deployment — accounts, users, and subject permissions.
Requirements
A NATS deployment running nats-server 2.14+ with JetStream enabled.
Ownership
Built and maintained by Resonate HQ, independently of the NATS project. The NATS server itself is unmodified and Apache 2.0 — the BUSL license applies only to Resonate's server. Not affiliated with, or endorsed by, Synadia.

Run durable execution on NATS.

Sign up and we'll help you stand it up on the NATS deployment you already run — and your stack shapes what gets built next.