Workflow basics
DAGs, nodes, runs, and traces — the model that powers every multi-step automation in ThorStack.
The model
A workflow in ThorStack is a directed acyclic graph (DAG) of nodes. Each node is one of:
- An agent step — invoke a specific agent with a specific tool.
- A human step — an approval gate or a hand-off.
- A branch — conditional routing based on the run's state.
- A wait — a pause for an external event or a timer.
- A fan-out / fan-in — parallel execution that converges.
Workflows have a trigger: a schedule, an event from a module, a webhook, or manual.
Running a workflow
A run is one execution of a workflow. Every run carries:
- Start and end timestamps.
- The trigger payload.
- A trace of every node — inputs, outputs, errors, retries.
- The full memory deltas (what was read, what was written).
You can replay a run from any node, which is invaluable when iterating.
The editor
The visual editor lays nodes out as a graph. Connect outputs to inputs by dragging. Each node has an inspector panel for its inputs, retry policy, and gate (if any). Workflows are versioned — saving creates a new version, not an in-place mutation.
Validation
Before a workflow can be enabled, ThorStack validates:
- The graph is acyclic.
- Every required input on every node has a source.
- Permissions on each tool call are within the workflow's scope.
- Approval gates exist for every action class that requires one (see Approval gates).
A validation failure shows the offending node inline, not as a modal you have to dismiss.
Next
- Conditional steps — branching and expressions.
- Approval gates — human checkpoints.
- Event triggers — start workflows from module events.