The second set of structural validations carried out are graph checks. These ensure the flow graph is a directed, connected acyclic graph. These validations include:
- The workflow must form a 'connected' graph. This means that each activity must appear on at least one path from the start activity to the end activity.
- The workflow must form an acyclic digraph. This means that there can be no path through the workflow that hits the same activity twice. This validation checks for cycles created by transitions only - cycles created with loop-begin and loop-end activities are perfectly valid.
- Every instance subgraph within the workflow graph must correctly terminate. This means that starting at the start activity, every possible path through the workflow must end up at the end activity.