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.

Emacs 29.1 (Org mode 9.6.6)