Skip to content
Resonate — durable execution that agents build, deploy, and operate

Resonate

Your code dies when the process dies. Resonate makes that not happen. You write normal functions; Resonate persists each step so they survive crashes, restarts, and long waits — minutes, hours, or weeks.

That's durable execution: the function's progress is the source of truth. If the worker crashes mid-function, the next worker resumes at the last persisted step. No state-machine DSL, no orchestration glue. Because it's ordinary code, it works the same whether a human wrote it or an agent did — the SDKs, server, and protocol are shaped for both.

This org is the core platform — the SDKs, the server, the protocol spec, and the agent-facing skill files (tool definitions for Claude Code and similar). Runnable examples live next door at github.com/resonatehq-examples.

brew install resonatehq/tap/resonate    # the server
npm  install @resonatehq/sdk            # or: pip install resonate-sdk · cargo add resonate-sdk

Documentation · Distributed async/await

What it looks like

A durable countdown — each yield* is a persisted checkpoint. If the worker crashes at Countdown: 2, the next worker resumes at Countdown: 1, not back at Countdown: 3.

// from example-quickstart-ts/countdown.ts
// https://github.com/resonatehq-examples/example-quickstart-ts/blob/6fa52e2/countdown.ts
import { Resonate, type Context } from "@resonatehq/sdk";

function* countdown(context: Context, count: number, delay: number) {
  for (let i = count; i > 0; i--) {
    // Run a function, persist its result
    yield* context.run((context: Context) => console.log(`Countdown: ${i}`));
    // Sleep
    yield* context.sleep(delay * 1000);
  }
  console.log("Done!");
}
// Instantiate Resonate
const resonate = new Resonate({ url: "http://localhost:8001" });
// Register the function
resonate.register(countdown);

What happens when the worker crashes mid-countdown:

sequenceDiagram
    participant App as countdown
    participant R as Resonate

    App->>R: yield context.run (print Countdown 3)
    R-->>App: persisted
    App->>R: yield context.sleep (delay)
    R-->>App: persisted
    App->>R: yield context.run (print Countdown 2)
    R-->>App: persisted
    Note over App,R: process crashes
    Note over App,R: a new worker starts later
    R->>App: resume from last persisted step
    App->>R: yield context.sleep (delay)
    App->>R: yield context.run (print Countdown 1)
    App->>App: Done
Loading

The sleep is durable, too. The generator's position is the state.

Start here

New to Resonate? Start with the docs, then pick a language.

Featured

SDKs

Server

  • resonate — the durable-promise server, in Rust. brew install resonatehq/tap/resonate to install.

Specification

Docs & skills

Browse all

The rest of the catalog.

Plugins & adapters
Additional specifications
Distribution & tooling
Legacy

Momentum

Community

License

Every Resonate repository is licensed under Apache-2.0. Each repo carries its own LICENSE file; this one covers the org-profile content.

Contributing

SDK and server contributions go on the repo where the change lands — resonate-sdk-ts / -py / -rs for SDK work, resonate for the server. See CONTRIBUTING.md for how to contribute code, file bugs, or propose an RFC. To report a bug or propose a change at the org level, open an issue using the templates at .github issues. Security issues: see SECURITY.md.

Pinned Loading

  1. resonate-legacy-server resonate-legacy-server Public

    Distributed Async Await — Durable Executions, Dead Simple

    Go 583 47

  2. resonate-sdk-py resonate-sdk-py Public

    Distributed Async Await — Durable Executions, Dead Simple

    Python 28 6

  3. distributed-async-await.io distributed-async-await.io Public

    Distributed Async Await specification and website framework

    MDX 9 3

  4. resonate-sdk-ts resonate-sdk-ts Public

    Distributed Async Await — Durable Executions, Dead Simple

    TypeScript 48 6

  5. async-await-literature async-await-literature Public

    Papers informing the design and development of Distributed Async Await

    88 7

  6. gocoro gocoro Public

    A coroutine library for go

    Go 13 2

Repositories

Showing 10 of 31 repositories

Top languages

Loading…

Most used topics

Loading…