---
title: "Supported Workflow Patterns — SpiffWorkflow 3.0.0 documentation"
description: "Parallel Split [control-flow/parallel_split.xml]"
source_url: https://spiff.works/docs/spiffworkflow/core/patterns.html
---

☰ Menu

# Supported Workflow Patterns[](#supported-workflow-patterns "Link to this heading")

Hint

All examples are located
[here](https://github.com/sartography/SpiffWorkflow/tree/main/tests/SpiffWorkflow/core/data)

## Control-Flow Patterns[](#control-flow-patterns "Link to this heading")

1. Sequence [control-flow/sequence.xml]
2. Parallel Split [control-flow/parallel\_split.xml]
3. Synchronization [control-flow/synchronization.xml]
4. Exclusive Choice [control-flow/exclusive\_choice.xml]
5. Simple Merge [control-flow/simple\_merge.xml]
6. Multi-Choice [control-flow/multi\_choice.xml]
7. Structured Synchronizing Merge [control-flow/structured\_synchronizing\_merge.xml]
8. Multi-Merge [control-flow/multi\_merge.xml]
9. Structured Discriminator [control-flow/structured\_discriminator.xml]
10. Arbitrary Cycles [control-flow/arbitrary\_cycles.xml]
11. Implicit Termination [control-flow/implicit\_termination.xml]
12. Multiple Instances without Synchronization [control-flow/multi\_instance\_without\_synch.xml]
13. Multiple Instances with a Priori Design-Time Knowledge [control-flow/multi\_instance\_with\_a\_priori\_design\_time\_knowledge.xml]
14. Multiple Instances with a Priori Run-Time Knowledge [control-flow/multi\_instance\_with\_a\_priori\_run\_time\_knowledge.xml]
15. Multiple Instances without a Priori Run-Time Knowledge [control-flow/multi\_instance\_without\_a\_priori.xml]
16. Deferred Choice [control-flow/deferred\_choice.xml]
17. Interleaved Parallel Routing [control-flow/interleaved\_parallel\_routing.xml]
18. Milestone [control-flow/milestone.xml]
19. Cancel Task [control-flow/cancel\_task.xml]
20. Cancel Case [control-flow/cancel\_case.xml]
21. *NOT IMPLEMENTED*
22. Recursion [control-flow/recursion.xml]
23. Transient Trigger [control-flow/transient\_trigger.xml]
24. Persistent Trigger [control-flow/persistent\_trigger.xml]
25. Cancel Region [control-flow/cancel\_region.xml]
26. Cancel Multiple Instance Task [control-flow/cancel\_multi\_instance\_task.xml]
27. Complete Multiple Instance Task [control-flow/complete\_multiple\_instance\_activity.xml]
28. Blocking Discriminator [control-flow/blocking\_discriminator.xml]
29. Cancelling Discriminator [control-flow/cancelling\_discriminator.xml]
30. Structured Partial Join [control-flow/structured\_partial\_join.xml]
31. Blocking Partial Join [control-flow/blocking\_partial\_join.xml]
32. Cancelling Partial Join [control-flow/cancelling\_partial\_join.xml]
33. Generalized AND-Join [control-flow/generalized\_and\_join.xml]
34. Static Partial Join for Multiple Instances [control-flow/static\_partial\_join\_for\_multi\_instance.xml]
35. Cancelling Partial Join for Multiple Instances [control-flow/cancelling\_partial\_join\_for\_multi\_instance.xml]
36. Dynamic Partial Join for Multiple Instances [control-flow/dynamic\_partial\_join\_for\_multi\_instance.xml]
37. Acyclic Synchronizing Merge [control-flow/acyclic\_synchronizing\_merge.xml]
38. General Synchronizing Merge [control-flow/general\_synchronizing\_merge.xml]
39. Critical Section [control-flow/critical\_section.xml]
40. Interleaved Routing [control-flow/interleaved\_routing.xml]
41. Thread Merge [control-flow/thread\_merge.xml]
42. Thread Split [control-flow/thread\_split.xml]
43. Explicit Termination [control-flow/explicit\_termination.xml]

## Workflow Data Patterns[](#workflow-data-patterns "Link to this heading")

1. Task Data [data/task\_data.xml]
2. Block Data [data/block\_data.xml]
3. *NOT IMPLEMENTED*
4. *NOT IMPLEMENTED*
5. *NOT IMPLEMENTED*
6. *NOT IMPLEMENTED*
7. *NOT IMPLEMENTED*
8. *NOT IMPLEMENTED*
9. Task to Task [data/task\_to\_task.xml]
10. Block Task to Sub-Workflow Decomposition [data/block\_to\_subworkflow.xml]
11. Sub-Workflow Decomposition to Block Task [data/subworkflow\_to\_block.xml]

## Specs that have no corresponding workflow pattern on workflowpatterns.com[](#specs-that-have-no-corresponding-workflow-pattern-on-workflowpatterns-com "Link to this heading")

- Execute - spawns a subprocess and waits for the results
- Transform - executes commands that can be used for data transforms
- Celery - executes a Celery task (see <http://celeryproject.org/>)
