A number of steps depending on each other's completion/failure — sequential, branching, or fan-out/fork-join — where the state of the workflow is persisted between step transitions and remains stable across crashes.