Skip to main content

Module decide

Module decide 

Source
Expand description

The deterministic workflow decider.

decide(state, definition, now) inspects an execution and returns the events that should happen next (schedule ready steps, fan out for steps, fire timers, apply retry policy, start compensation, finish the workflow…). It performs no I/O. The engine applies the events, persists them, and calls decide again until it returns nothing.

Unit keys: step for a step, step[i] for element i of a for step, and compensate:<unit> for the compensation of a unit.

Structs§

StateScope
Expression scope over an execution, optionally with a loop variable bound and with one step’s output overridden (an element’s own output inside its compensation).

Functions§

decide
Compute the next events. Returns an empty vector at a fixpoint.
invocation
The invocation behind a unit key.