# Workflow Pattern

**In short:** Workflow patterns are named, recurring ways a process controls its flow, such as sequence, parallel split, and simple merge. They help describe process models and compare process languages such as BPMN.

## Explanation

A workflow pattern is a named control-flow structure that recurs in process models. Control flow means the order in which steps run, and how the path splits or joins.

**Patterns from the verified set**

- **Sequence.** A step becomes enabled once the step before it in the same process completes.
- **Parallel split.** One branch diverges into two or more branches that run at the same time.
- **Simple merge.** Whenever any incoming branch is enabled, control passes to the next branch. Nothing waits for the other branches.
- **Arbitrary cycles.** Loops in a process model may have more than one entry or exit point.
- **Deferred choice.** The branch taken is picked through interaction with the operating environment, not by the process itself.

**How the patterns map to BPMN**

BPMN is a process notation. Its gateways split and join the flow. See the article *BPMN Gateway*.

- A parallel gateway used as a split takes all outgoing flows. This is the parallel split.
- A parallel gateway used as a join makes the process instance wait until every incoming flow has arrived.
- An exclusive gateway used as a split takes the first flow whose condition is fulfilled.
- An exclusive gateway used as a merge only passes control through. It does not synchronize concurrent flows. This matches simple merge.

Confusing a pass-through merge with a waiting join is a typical modeling error. See *BPMN Gateway Mismatch Antipatterns*.

**What the patterns are used for**

The patterns served as initial requirements for designing the workflow language and system YAWL (Yet Another Workflow Language). They have also been used to evaluate proposed standards: BPEL, BPMN, UML Activity diagrams and XPDL.

Other groups proposed further pattern sets beyond control flow. These cover data, resources and exception handling.

## Example

A support team handles a refund request. A clerk registers the request, then a second step checks the order. That is a sequence. After the check, two branches start together: one prepares the payment and one notifies the customer. That is a parallel split. A join then waits until both branches finish. Another place in the process lets either of two alternative review paths continue immediately. That is a simple merge, and it does not wait.

## Trade-offs

The facts here describe what the patterns are and where they are used. They do not weigh costs. One practical caution follows from the BPMN mapping: a merge that passes control through behaves differently from a join that waits. Choose the gateway that matches the pattern you intend.

BPMN diagram: [A sequence, then a parallel split and a synchronizing join.](https://arc.fuet.ch/diagrams/concepts/modeling-bpmn/workflow-pattern/diagram-1.bpmn)

## Checks

- Where a process runs branches in parallel, a parallel gateway splits the flow and a parallel gateway joins it again.
- Exclusive gateways are used as merges only where the incoming branches are alternatives, since they do not synchronize concurrent flows.
- Each exclusive split has conditions on its outgoing flows, because the gateway takes the first flow whose condition is fulfilled.

## Related

- [BPMN Gateway](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-gateway-semantics.md)
- [BPMN Gateway Mismatch Antipatterns](https://arc.fuet.ch/concepts/modeling-bpmn/antipatterns-for-process-flows.md)
- [Lack of Synchronization](https://arc.fuet.ch/concepts/modeling-bpmn/lack-of-synchronization-in-process-models.md)
- [Deadlock in Process Models](https://arc.fuet.ch/concepts/modeling-bpmn/deadlock-in-process-models.md)
- [Event-Based Gateway](https://arc.fuet.ch/concepts/modeling-bpmn/event-based-gateway.md)
- [Process Notations Comparison (EPC, BPMN, UML Activity Diagram)](https://arc.fuet.ch/concepts/modeling-bpmn/process-notations-comparison.md)
- [Soundness of Process Models](https://arc.fuet.ch/concepts/modeling-bpmn/soundness-of-process-models.md)
- [BPMN 2.0 Notation](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-2-0-notation-overview.md)

## Sources

- [Workflow Process Patterns Support](https://docs.tibco.com/pub/amx-bpm/4.3.1/doc/html/bpmhelp/GUID-781A0624-4DF4-4E64-A8C1-668BAEC2F808.html) — docs.tibco.com, accessed 2026-11-09
- [Workflow pattern - Wikipedia](https://en.wikipedia.org/wiki/Workflow_pattern) — en.wikipedia.org, accessed 2026-11-09
- [Parallel gateway | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/parallel-gateways/) — docs.camunda.io, accessed 2026-11-08
- [Exclusive gateway | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/exclusive-gateways/) — docs.camunda.io, accessed 2026-11-08
