distri-workflow — workflow engine for Distri.
Define multi-step workflows as data, execute them step by step, with support for sequential/parallel execution, conditions, agent runs, tool calls, and persistent state tracking.
Architecture
Two layers, deliberately separated:
- Definition — the workflow as a DAG of steps. Static template;
no runtime state. (
WorkflowDefinition,WorkflowStep). - Run — execution state for one invocation: status, shared
context, per-step status / result / error / timestamps.
(
WorkflowRun,WorkflowStepRun).
Other key types:
StepRequirement— what a step needs to run (native skills, connections)StepExecutortrait — executes a step (implement for your runtime)WorkflowStateStoretrait — persistsWorkflowRuns (Redis, DB, in-memory)WorkflowRunner— orchestrates execution with requirement checking
Example
use *;
let steps = vec!;
let definition = new;
let run = new;