Expand description
Persistence.
The execution_events table is the source of truth. workflow_executions
is a projection kept in the same transaction for fast listing. Every batch
of events is appended atomically together with the projection update.
execution_events holds each execution’s current run; runs that ended
with continue-as-new are moved to execution_run_events (keyed by run) in
the transaction that starts the next run. orbit_schedules holds the
schedules (see crate::schedule).
Two backends share the schema and the guarantees:
- SQLite (default): a single file, WAL mode,
synchronous=FULL. - PostgreSQL: pass a
postgres://URL. All statements run on one dedicated connection thread, so the synchronous engine never blocks the async server runtime from inside it, and the connection is re-established automatically if it drops.
Structs§
- Execution
Summary - Fire
Record - The outcome of firing one occurrence, written when the firing server
releases its claim (see
Store::finish_schedule_fire). - PgStore
- Rollover
- Continue-as-new: the finished run’s number and its last events. They are archived, together with the rest of that run’s history, in the transaction that writes the next run’s first events.
- Schedule
Row - A schedule as stored in
orbit_schedules.specis the JSON ofcrate::schedule::ScheduleSpec; the other columns are the schedule’s progress, written by whichever server fires it. - Sqlite
Store - Store
Error - A storage error from either backend.
- Worker
Record
Enums§
- PgMode
- How a
PgStoremay write. Single-node servers useReadWrite; the cluster mode (orbit server --cluster, seecrate::cluster) gives a standby aReadOnlystore and the leader aFencedone. - PutDefinition
- Store
- The storage backend used by the engine.