ores.workflow.workflow_step

Table of Contents

Records the execution of one step in a saga workflow, including the step index, name, status, request/response payloads, and timing. Steps reference their parent workflow instance via workflow_id.

Flags

Primary key

UUID primary key for the workflow step.

Natural keys

Columns

workflow_id

FK reference to the parent workflow instance.

step_index

Zero-based ordinal position of this step within the workflow. Negative values denote compensation steps.

name

Human-readable step name, e.g. 'save_party'.

state_id

FK to the FSM state record (ores_workflow_fsm_states_tbl) for this step.

request_json

Serialised JSON payload sent to the downstream service for this step.

response_json

Serialised JSON response received from the downstream service.

error

Human-readable error message if the step failed.

command_subject

NATS subject to which the step command was published.

command_json

Serialised JSON command payload published to the domain service.

command_published_at

Timestamp when the step command was published to NATS.

idempotency_key

Idempotency key (echoes the step UUID) sent as X-Workflow-Step-Id header.

compensation_subject

NATS subject for the compensation command. Empty if this step has no compensation.

compensation_json

Serialised JSON compensation command payload, populated when compensation is triggered.

started_at

Timestamp when the step began executing.

completed_at

Timestamp when the step reached a terminal state.

SQL

Flags

C++

Flags

Repository

Domain includes

#include <chrono>
#include <optional>
#include <string>
#include <boost/uuid/uuid.hpp>

Conventions

Custom repository methods

See also

Emacs 29.1 (Org mode 9.6.6)