BPMN Terms Explained

Introduction

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.

Process Fork

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”.

Figure1
Figure 1: Uncontrolled Fork (left) and controlled Fork (right)

Process Join

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).

Figure2
Figure 2: Process Join

Process join is commonly used in a combination with a ‘controlled fork’ (using AND-AND gateways).

Free BPMN Downloads!

Process Branch

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.

Figure3
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.

Figure4
Figure 4: Inclusive branches – gateway-based (left) and conditional sequence flow-based (right)

Process Merge

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.

Figure5
Figure 5: Uncontrolled Merge (left) and controlled Merge (right)

Conclusion

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.

Free BPMN Resources

SHARE
Gregor received his PhD in 2008 in the fields of software engineering and information systems and has nearly a decade of experience in BPMN, starting to investigate and actively use BPMN since its introduction in 2004. In addition, he has participated in the development of one of the first BPMN modeling utilities - a package of plugins for Visio, which were introduced early in 2005 and is the main author of the first BPMN poster (bpmn.itposter.net), which has been translated into several languages and already exceeded 50.000 downloads.
  • Alex Pineda

    Can a process merge loop back to the originating process? ie A ->B,C -> A . eg A: browse products B:view image C: view details A: optionally go back to browse products