This series of articles is dedicated to the explanation of common BPMN 2.0 terms, where this article will explain the terms Fork, Join, Branch and Merge as defined in the BPMN 2.0 specification.
All terms relate to the point in a process diagram, where the number of incoming sequence flows differs to the number of outgoing ones. To represent Fork, Join, Branch and Merge in a business process diagram, three types of BPMN elements are used: activities, gateways and sequence flows.
BPMN uses the term ‘fork’ to refer to the dividing of a path into two or more parallel paths. So, a fork indicates a point in the process, where activities can be performed concurrently, rather than sequentially. Process fork can be implemented by using (Figure 1):
- Multiple outgoing sequence flows. This represents an ‘uncontrolled’ flow, which stands for a “flow that proceeds without dependencies or conditional expressions”.
- A parallel gateway. This represents a ‘controlled’ flow, which stands for a “flow that proceeds from one flow object to another, via a sequence flow link, but is subject to either conditions or dependencies from other flow as defined by a gateway”.
Figure 1: Uncontrolled Fork (left) and controlled Fork (right)
BPMN uses the term ‘join’ to refer to the combining of two or more parallel paths into one path (also known as an AND-Join or synchronization). A parallel gateway is used to show the joining of multiple sequence flows (Figure 2).
Figure 2: Process Join
Process join is commonly used in a combination with a ‘controlled fork’ (using AND-AND gateways).
Branches or decisions are represented with gateways which enable that the flow of control can take one or more alternative paths. Several gateways as well conditional sequence flows can be used for branches. In case, that only one alterative path can be chosen, an exclusive gateway should be used (Figure 3). The alternative paths can be defied by:
- A conditional expressions contained within the outgoing sequence flows. In this case, a (data-based) exclusive gateway should be used.
- An event that occurs at that point in the process. In this case, an event-based exclusive gateway should be used. Beside events, tasks of type ‘receive’ can be used.
Figure 3: Exclusive Branches – data-based (left) and event-based (right)
In case that several alternative paths can be chosen, an inclusive branch should be used. In case of an inclusive branch, each alternative path is independent, so all combinations of the paths may be taken (from zero to all). To assure that a process does not stuck at the gateway, it should be designed so that at least one path is taken. A default condition could be used to ensure that at least one alternative path is taken. Inclusive branches can be modelled in two ways (Figure 4):
- By using an inclusive gateway or
- By using a collection of conditional Sequence Flows, marked with mini-diamonds.
Figure 4: Inclusive branches – gateway-based (left) and conditional sequence flow-based (right)
BPMN uses the term ‘merge’ to refer a point in the process where two or more alternative sequence flow paths are combined into one sequence flow path. BPMN uses multiple incoming sequence flows for an activity or an exclusive gateway to perform a merge (Figure 5). If all the incoming flows are alternative, then an uncontrolled merge provides the same behavior as the controlled one.
Figure 5: Uncontrolled Merge (left) and controlled Merge (right)
The terms Fork, Join, Branch and Merge as defined in the BPMN 2.0 specification were explained. All terms relate to the point in a process diagram, where the number of incoming sequence flows differs to the number of outgoing ones.