The execution model, and the scheduler lesson
One decision here is worth more than the rest of the module combined.
Read from source, one widely-deployed engine is a stack-based interpreter in a single labelled loop. Its own header states the design goal: the state object "contains all the data which is needed to execute a workflow and so also to restart it again if it fails." Shift the next frame, run the node, push successors. Depth-first with a waiting set for nodes whose inputs are incomplete. No compilation, no bytecode, no coroutines.
Two properties fall out free. The interpreter state is data, so pausing, resuming, moving an execution to another worker, and fabricating a mid-run state from a previous run's output are all one operation. And the interpreter is small enough to read in an afternoon, which matters more than it sounds when the engine is what everyone blames.
A visual workflow tool has been in production for seven years. Which of these is still behind a preview flag?
The rest of this lesson unlocks when you commit above.