- To add separate branches of execution to a workflow.
- To delay the state machine for a specified time.
- To run a set of steps for each item in a dataset in parallel.
- To add conditional logic to a workflow.