Definitively.Workflow.Engine (definitively v0.2.1)

Copy Markdown

Data-driven workflow runner as :gen_statem.

States and transitions come from a loaded Definitively.Domain.Program. Node execution is external in v1 — callers send {:node_result, outcome} or {:node_finished, outcome} after running a node.

Summary

Functions

Loads the dev_quality_loop fixture program from test/fixtures.

Types

data()

@type data() :: %{
  program: Definitively.Domain.Program.t(),
  table: Definitively.Domain.TransitionTable.t(),
  run_context: Definitively.Workflow.RunContext.t() | nil,
  history: [map()],
  attempts: %{required(atom()) => non_neg_integer()}
}

Functions

load_default_program!()

@spec load_default_program!() :: Definitively.Domain.Program.t()

Loads the dev_quality_loop fixture program from test/fixtures.