BPMN diagrams are graphs, which means that they consist of two basic types of elements: nodes and connections.
Nodes are represented with flow objects (activities, gateways, and events), data, and artifacts, whilst connections are represented with one of the BPMN connecting objects.
Most BPMN connections are directed, which means that they represent a type of flow. Graphically, a flow is represented with an arrow between elements in a process, collaboration, or choreography.
A ‘sequence flow’ is the most common BPMN flow. It is represented with a solid arrow and is used to show the order in which activities are performed in a process. Each sequence flow has only one source and only one target. A sequence flow can cross the boundaries between lanes of a pool but cannot cross the boundaries of a pool (Figure 1).
Normal flow represents a subset of a process’s sequence flow (black arrows in Figure 2). It refers to sequence flow paths that do not start from an intermediate event attached to the boundary of an activity (red arrow in Figure 2). A normal flow originates from a start event and continues through activities on alternative and parallel paths until reaching an end event.
An exception flow occurs outside the normal flow of a process and is based upon an intermediate event attached to the boundary of an activity that occurs during the performance of the process (see red arrow in Figure 2).
Uncontrolled flows are sequence flows that proceed without dependencies or conditional expressions. They can also be flows that do not pass through a Gateway.
The simplest example of an uncontrolled flow is a single sequence flow connecting two activities. More commonly, an uncontrolled flow applies to multiple sequence flows that converge to (uncontrolled merge) or diverge from (uncontrolled split) an activity (Figure 3).
Controlled flows are the opposite of uncontrolled flows. They are flows that proceed from one flow object to another via a sequence flow link but are subject to either conditions (red arrows in Figure 4) or dependencies from other flows as defined by a gateway (green arrows).
Typically, this is seen as a sequence flow between two activities, with a conditional indicator (mini-diamond) or sequence flow connected to a gateway.
A conditional flow is a subset of a controlled flow. It is a sequence flow with a condition expression that is evaluated at runtime to determine whether or not the sequence flow will be used.
If the conditional flow is outgoing from an activity, then the sequence flow will have a mini-diamond at the beginning of the connector. If the conditional flow is outgoing from a gateway, then the line will not have a mini-diamond.
The default flow is a special kind of sequence flow that is used in combination with conditional flows. It is ‘activated’ only if all the corresponding conditional flows are not ‘true’ at the runtime. The default flow is represented by a diagonal slash added to the beginning of a connector (Figure 5).
An information flow is not a sequence flow because it does not represent the order of activities but instead the flow of information in a process diagram.
It is modeled with a dotted arrow (data association). Alternatively, an information flow can be represented with an undirected association attached to the sequence flow (Figure 6). Information flows can be used only within a process. In the case of representing the flow of information between processes (or pools), message flows should be used.
A message flow is represented by a dashed arrow with a circle at the starting point (Figure 7). It is used to show the flow of messages between two processes ( or pools). It can be used in conjunction with BPMN elements that can send and receive messages (message events, send/receive activities, and pools).
A compensation flow defines the set of activities that are performed while the transaction is being rolled back to compensate for activities that were performed during the normal flow of the process (Figure 8).
Process flows represent an obligatory part of each business process diagram. Most commonly, they are used to represent the overall progression of how a process is performed. Flows can also represent how messages and information are processed in a business process.