Durable agent execution

Keep your agents
moving.

Recover long-running AI workflows from saved checkpoints, even when workers crash or external services time out.

Execution workspace

See the whole run.

Follow a ticket from intake to routing. The execution record shows where the worker stopped, which outputs survived, and what resumed.

Open interactive demo
◈   Romulus / Workflow runsIllustrative workspace

Workspace

▰   Workflow runs◇   Checkpoints◎   Events

Workflow

Support intakeReport processing

RUN_7F21

Route a support ticket

Recovered
  1. 01Ingest support ticketSaved0.20s
  2. 02Load customer contextSaved1.26s
  3. 03Score ticket priorityRecovered2 attempts
  4. 04Route ticketComplete0.31s
Checkpoint savedWorker interruptedRun resumed

Checkpoint inspector

Customer context
Checkpoint
cp_02
Saved output
ctx_91
Next step
Score priority

Replacement worker reused the saved output.

01 Use cases

Keep the work that already ran.

Application design

Make recovery part of your application.

Start with a workflow that already has clear steps. Decide which outputs need to survive, where execution can pause, and which external actions need reconciliation.

Read the engineering notes
Reference integration model
Your applicationAgent logic & business workflow

Chooses the next action and defines completion.

Execution boundaryCheckpoints, waits & operation IDs

Records what can be reused and what still needs to run.

External systemsTools, APIs & background jobs

Return results or expose an operation status for reconciliation.

02 Architecture

A run can outlive its worker.

The execution record tracks completed work, pending events, and external operation IDs. A new worker uses that record to decide what should run next.

  1. 01

    Execute

    A worker takes a runnable step and produces a result.

  2. 02

    Checkpoint

    Persist the step output and the next runnable position.

  3. 03

    Wait or interrupt

    Save the wait condition or detect that the worker stopped.

  4. 04

    Resume

    Load the checkpoint and continue from the first unfinished step.

03 Engineering notes

Design for the failure path.

What belongs in a checkpoint?

A checkpoint should identify the run and workflow version, the steps that completed, and the outputs later steps need. Persist the result and the next execution position together so a replacement worker sees a consistent point from which to resume. Use worker leases or equivalent coordination so overlapping attempts cannot both advance the run.

What if an external write may already have happened?

Record a stable operation ID before making the request. If the connection drops, ask the provider whether that operation already succeeded or retry using the same idempotency key where supported. When the provider offers neither reliable lookup nor idempotency, route the uncertainty to review before sending another write.

How do you wait without occupying a worker?

Persist the event type, correlation ID, and optional deadline, then release the worker. Save incoming events durably and schedule a continuation when one matches the run’s wait. Matching and advancing the wait need to tolerate repeated events and an event arriving before the worker has released the run.

Interactive demo

See what survives a crash.

Try a worker crash, an uncertain CRM write or a long-running job. Inspect the evidence as the run recovers.

Open interactive demo