Module 2 · BPMN Foundations

Sequence Flow: the Connective Tissue

Lesson 3 of 4

What Sequence Flow is

Sequence Flow is the solid arrow that connects elements within a process. It shows the order in which things happen — which task follows which event, which gateway leads to which task.

The cardinal rule

Sequence Flow must stay inside one Pool. It cannot cross from one Pool to another. If two elements in different Pools need to be connected, use Message Flow (dashed arrow) instead. This is not a stylistic choice — it is a rule in the BPMN 2.0 specification.

Common mistake

Drawing a Sequence Flow (solid arrow) between a Customer pool and a Company pool. This is one of the most frequent beginner errors and makes the diagram technically incorrect even if it looks logical. Sequence Flow crossing a Pool boundary is always wrong — use Message Flow instead.

Layout best practices

  • Flow left to right. Diagrams that flow from left to right are significantly easier for stakeholders to read. Avoid rightward-to-leftward flow loops — model them as gateway-controlled branches with End Events or proper loop structures.
  • Avoid crossing arrows. More than two flows crossing each other signals a layout problem. Rearrange elements or use a Sub-process to encapsulate complexity.
  • Every Task needs in and out. Every task should have at least one incoming and one outgoing Sequence Flow, unless it immediately follows a Start Event or directly precedes an End Event.
  • Label gateway outgoing flows. Sequence Flows leaving a Gateway should carry a condition label: 'In stock', 'Out of stock', 'Amount > £5,000', 'Approved', 'Rejected'. Without labels, the reader cannot tell what determines the routing.

Conditional Sequence Flow

Example: An Exclusive Gateway 'Invoice matched?' has two outgoing Sequence Flows: one labelled 'Yes, matched' leading to 'Approve Invoice', and one labelled 'No, discrepancy found' leading to 'Resolve Discrepancy'. Without these labels, neither path is meaningful.

✓ When to use

  • Connect all elements within the same Pool
  • Label all outgoing Sequence Flows from Exclusive Gateways with the routing condition
  • Arrange flows left to right wherever possible

✗ When not to use

  • Never use Sequence Flow to connect elements in different Pools — use Message Flow
  • Don't leave gateway outgoing flows unlabelled
  • Don't cross flows more than twice in a single diagram — restructure instead