Workflows
Write straight-line async Python and have it survive the process it started in. A worker that dies mid-run does not lose the run, and does not redo the work it already finished: whatever came before the crash is read back from the journal rather than executed again.
That is the whole proposition. Every run is an append-only event stream, which is what makes it possible to rebuild state after a crash and to follow a run that is still in flight.
from pyrula.workflows import workflow, InlineWorkflowRunner, MemoryStoreStart with the Quickstart to run one. The concept pages explain the model: how a run is stored, how replay recovers it, and what your code has to do to stay replay-safe. The guides cover the suspend points (timers, signals, interrupts).
Agent authoring and the HTTP serving layer live under Agents, which is built on this engine.