
BPMN Message Flows versus Sequence Flows
One of the most common errors I’ve seen people make when learning BPMN is to misunderstand the difference between Message Flows and Sequence Flows. If you fail to use them correctly Microsoft Visio Professional will warn you when you attempt to validate the accuracy of your diagrams. It’s important to know the difference between the two.
In BPMN a pool represents a collaborating participant or partner in a business process, and it encapsulates a set of related activities.
A pool in BPMN typically represents an individual participant, which can be an organization, department, or system. Activities within a pool are meant to be internal to that participant, representing their own set of tasks and processes.
A pool can be split into lanes, each of which can represent part of the same organisation. Communications within a Pool are represented by Sequence Flows.

On the other hand, Message Flows Represent Inter-Participant Communication and are designed to illustrate the exchange of messages between different participants or pools in a BPMN diagram. They define the communication paths between separate entities involved in a business process.
The reason message flows cannot be used within a pool is related to the conceptual separation of participants and the communication channels between them. Allowing message flows within a pool could create ambiguity. Since a pool is a higher-level container for a participant, having message flows within it might imply communication between internal elements, which is not the intended use of message flows. Message flows are meant to represent communication across pools, ensuring clarity in depicting interactions between distinct participants.
One of the key principles of BPMN is to create clear and unambiguous process diagrams. By restricting message flows to the boundaries of pools, BPMN ensures that communication paths between participants are visually explicit and distinct from internal interactions.
In summary, the separation of message flows from pools in BPMN is a design choice aimed at ensuring that the notation accurately reflects the intended communication between distinct participants or pools in a business process.
