Skip to main content

Lertha Flow

View Markdown

Lertha Flow is the orchestrator for agents. It runs the work that must not be lost: an agent deciding its next step, a transfer waiting on a human, a nightly recompute, an SMS that has to go out exactly once. It records every step, retries what fails, waits for as long as a person needs, and survives every restart in between.

You write ordinary Kotlin against a small port. The orchestrator owns the durability.

Three words

WordWhat it is
TaskOne unit of work with a side effect. Retried, timed out, de-duplicated by id.
FlowThe program around tasks: sequence, fan-out, sleep, wait for a signal. Deterministic, replayable.
RunOne execution of a task or a flow, addressed by a RunId you choose.

The Glossary has the full list, including the core identifiers you will meet in queries and event histories.

Where to start

  • New to durable execution? Read Concepts, then do the study track. The kill-the-worker exercise is the one that makes it click.
  • Writing application code? Kotlin quickstart gets a task running in ten minutes; Flows is the agent-loop shape.
  • Running it? Orchestrator explains the single binary, its Postgres, and how it deploys.

Why a port

Application code depends on orchestration-api only. orchestration-engine is the first engine behind it, and orchestration-memory runs the same port with no server at all. A 40-test contract decides what an engine must do. That is what lets the engine change without the applications noticing.