In Obversa
The runner starts the worker with a restart budget and a time limit, and a crashed worker is replaced inside them:examples/supervised-run.ts (excerpt)
restart.maxRestarts caps how many replacement workers the run gets, with
a backoff between them. readSupervisedRunStatus reads the run’s phase and
whether a worker is alive from any process that shares the storage, so you
can see what happened without taking the run over. Starting a run again is
not an approval: a question that was waiting for a person is still waiting.
Durable execution
Durable execution is the phrase for systems such as Temporal that replay an event history on a service and keep a process alive for days across many workers. Obversa is a library with no server: the record is a file on one machine, and a run carries on from it. Do I need Temporal to survive a crash? draws the line.Next steps
- Supervised local runs: the guide, with the crash-boundary table and the whole example.
- The record: what a restarted run skips and repeats.