Brought to you by Resonate
The protocol as a schema of stored functions — one SQL file, and the database you already run becomes the server.
Load a single SQL file into a Postgres 16+ database and the protocol lives inside it. Storage, queue and timer are all the database: 58 stored functions carry the protocol actions, and pg_cron wakes the timers.
One protocol, many providers
Any platform that can provide durable storage and an atomic compare-and-swap can implement the durable execution protocol. Postgres implements it natively, in its own primitives.
Why Postgres
The core server supports Postgres — you run a binary and Postgres holds its state. This is the other arrangement: there is no binary. Every protocol action is a stored function, so the thing you operate and the thing you back up are the same thing.
pg_cron drives the timers, so a durable sleep is a row with a deadline. The invocation returns and the database wakes the worker when there is something to do. Outbound delivery is optional — add pg_net or pgsql_http and the database pushes; leave them out and workers poll.
SQL-native
There is no server process to host an HTTP interface, so workers reach the protocol through a single function over a database connection. That needs a client that speaks SQL. TypeScript has one today, @resonatehq/supabase, and it is pre-1.0 — expect its surface to move. If you need another language, tell us what your stack runs when you sign up.
psql -d yourdb -f resonate.sql
What's true today
One SQL file, loaded into a database you already back up. Sign up and we'll help you get it running.
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.