What is a collaboration diagram?
A collaboration diagram shows how two or more participants interact. Each participant gets their own pool, and message flows (dashed arrows) show the communication between them.
This is the key difference from a regular process diagram: in a collaboration, you can see both sides of the interaction. A customer sees the order from their perspective. The supplier sees it from theirs. The collaboration diagram shows both, connected.
Pools, lanes, and message flows
Pool
A pool represents a participant — an organization, a department, or a system. Each pool has its own process. Sequence flows (solid arrows) stay within a pool. They never cross pool boundaries.
Lane
A lane subdivides a pool into roles or departments. Lanes are optional. A pool with two lanes (e.g., "Sales" and "Warehouse") shows who does what within the same organization. Sequence flows can cross lane boundaries.
Message flow
A dashed arrow with an open circle. Connects elements in different pools. Represents communication: an email, an API call, a letter, a phone call. Message flows never connect elements within the same pool.
Pools vs lanes: the rule
| Pool | Lane | |
|---|---|---|
| Represents | An organization or independent system | A role or department within an organization |
| Sequence flows can cross? | No — use message flows instead | Yes |
| Has its own process? | Yes — each pool is an independent process | No — lanes share the pool's process |
| When to use | Customer + Supplier, Company + Bank, System A + System B | Sales + Warehouse, HR + Manager + Employee |
The rule of thumb: if the participants can see each other's internal process, use lanes. If they cannot (separate organizations, separate systems), use pools.
Black-box pools
Sometimes you know that an external participant exists but you do not know (or care about) their internal process. In this case, use a collapsed pool — a thin horizontal bar with just the participant name. No tasks, no events, no flow inside.
This is called a black-box pool. You can still send and receive messages to/from it. It represents the boundary of your knowledge: "I know I send them an order and they send me a confirmation, but I do not model what they do internally."
Common patterns
Request-response
Pool A sends a message to Pool B. Pool B processes the request and sends a response back. Two message flows, one in each direction. The most common collaboration pattern.
Notification
One-way message. Pool A sends a message to Pool B (or a black-box pool) without waiting for a response. Example: sending an order confirmation email.
Multi-party handshake
Three or more pools exchanging messages. Example: a buyer orders from a supplier, the supplier requests shipping from a logistics company, the logistics company confirms delivery to the buyer.
Common mistakes
- -Sequence flows crossing pools — this is the #1 mistake. Sequence flows stay within a pool. Use message flows to cross pool boundaries.
- -Message flows within a pool — the opposite mistake. If two elements are in the same pool, connect them with sequence flows, not message flows.
- -Using lanes when pools are needed — if the participants are separate organizations with separate systems, they need separate pools. Lanes imply shared process ownership.
- -Forgetting message events — when a message flow arrives at a pool, something needs to catch it. Use a message start event, message intermediate catch event, or receive task.
Related guides
Keep learning
Frequently asked questions
When should I use a collaboration diagram instead of a process diagram?▼
When two or more independent organizations or systems interact. If the process stays within one organization, a process diagram with lanes is usually enough.
Can a pool have no internal process?▼
Yes. A collapsed (black-box) pool shows only the participant name. You can send and receive messages to it without modeling its internal process.
Can I have more than two pools?▼
Yes. A collaboration can have any number of pools. A common example: a buyer, a supplier, and a logistics company in a three-pool collaboration.
What is the difference between a pool and a lane?▼
A pool represents an independent participant (organization or system). A lane subdivides a pool into roles. Sequence flows cross lanes but never cross pools — use message flows instead.