Story: Workflow engine
Table of Contents
This page documents a story in Sprint 16. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
ores.workflow component foundation; FSM state UUIDs replace ad-hoc status strings; generalised event-driven saga engine with startup recovery.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 16 |
| Now | Completed 2026-04-06. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2026-04-06 |
Acceptance
- All tasks complete; PR-by-PR breakdown in
git log.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Generalise workflow engine and migrate existing sagas | DONE | 2026-05-20 | 2026-04-06 | Event-driven engine with definition registry + startup recovery; provision_parties + ore_import sagas migrated; publish_step_completion helper; ores.workflow.api created with shared messaging types. |
| Replace ad-hoc status strings with FSM state UUIDs | DONE | 2026-05-20 | 2026-04-06 | Migrate workflow status management from hardcoded strings to database-driven FSM; NATS protocols + services for querying FSM transitions; workflow instance + step state_id FK; fsm_state_map utility. |
| Add ores.workflow SQL schema and C++ scaffold | DONE | 2026-05-20 | 2026-04-06 | Foundational saga-pattern workflow orchestration component: SQL schema for workflow instances + steps; RLS policies; C++ domain entities + repositories; codegen template fixes for timestamptz handling. |
Decisions
- Final v0 sprint
- capture everything landed under v0 honestly; this is the closing chapter of v0.
Out of scope
- Anything explicitly carried forward to v1.
See also
None.