skip to content

Pools and Swimlanes

Pools represent participants and lanes divide responsibility inside one, with black-box pools standing in for parties whose internals you do not model. Interviewers ask because putting an actor in the wrong lane changes who the process says is accountable.

part ofCompliance & governance standardsoverview, primer and where to startread it →

questions

5

In BPMN 2.0, what is the difference between a pool and a lane in a hiring process diagram?

level: juniorimportance: must knowfreq 50%

answer

  1. who takes part versus who does it
  2. one process per pool at most
  3. lanes slice a single process
  4. which boundary a sequence flow cannot cross

basics

~20 s

In BPMN 2.0 a pool is the graphical form of a participant, such as the employer or the candidate, and contains at most one process; a lane is a sub-partition inside that process, such as Recruiting or Hiring manager.

solid answer

~40 s

A **pool** represents a **participant** in a collaboration: a `PartnerEntity` such as a company or a `PartnerRole` such as a buyer. The participant's `processRef` points at **at most one** process, drawn inside the pool; a pool with no process is a black box. A **lane** is a **sub-partition within a process** that organises and categorises its activities; BPMN leaves the meaning to the modeller, so lanes are commonly roles, departments or systems. In a hiring model the employer is one pool with lanes such as Recruiting and Hiring manager, while the candidate and the background-check agency are separate participants and so separate pools. Sequence flows may cross lane boundaries freely, because the lanes share one process, but never a pool boundary; interaction between pools is shown by message flows.

code

xml · 19 lines
xml
<collaboration id="HiringCollaboration">
  <participant id="Employer" name="Employer" processRef="EmployerHiring"/>
  <participant id="Candidate" name="Candidate"/>
  <participant id="Agency" name="Background-check agency"/>
</collaboration>

<process id="EmployerHiring" processType="Private">
  <laneSet id="EmployerLanes">
    <lane id="Recruiting" name="Recruiting">
      <flowNodeRef>ScreenApplication</flowNodeRef>
    </lane>
    <lane id="HiringManager" name="Hiring manager">
      <flowNodeRef>Interview</flowNodeRef>
    </lane>
  </laneSet>
  <task id="ScreenApplication" name="Screen application"/>
  <sequenceFlow id="f1" sourceRef="ScreenApplication" targetRef="Interview"/>
  <task id="Interview" name="Interview"/>
</process>

go deeper

for a junior

Recall that a pool is a participant, at most one process, and a lane is a partition inside that process.

for a middle

Explain which hiring parties become pools and which become lanes, and why sequence flow may cross lanes but not pools.

for a senior

Show how a wrong pool-or-lane choice misstates control and accountability, and restructure models where external parties sit in lanes.

for a principal

Set conventions for what lanes mean across a modelling practice, since the standard leaves lane meaning to the modeller.

## Two kinds of swimlane BPMN 2.0.2 groups flow elements with two **swimlanes**: pools and lanes. They look alike (square-cornered rectangles drawn with a solid single line) but they answer different questions. | | **Pool** | **Lane** | |---|---|---| | Represents | a **participant** in a collaboration | a **partition** of one process | | Defined in | the `collaboration`, as a `participant` | the process's `laneSet`, as a `lane` | | Contains | zero or one process (via `processRef`) | a set of flow nodes of that process (`flowNodeRef`) | | Sequence flow across its boundary | never | allowed | | Meaning set by | the standard: an independent party | the modeller: role, department, system | | Nesting | not applicable | yes, through a child lane set | ## Pools: participants Clause 9.3 defines a pool as the **graphical representation of a participant** in a collaboration. A participant can be a specific **PartnerEntity** (a company) or a more general **PartnerRole** (for example, candidate or employer). Key rules: - A pool **may or may not** reference a process. With no process it is a **black box**. - A pool is the container for the sequence flows of its process; **a process is fully contained within the pool**, and sequence flows cannot cross its boundary. - Interaction between pools is shown through **message flows**. - One pool in a diagram, typically the modeller's own internal process, may be drawn **without a boundary**; all others must have one. - A pool may carry a **multi-instance marker** (three vertical lines, centred at the bottom) when the participant has multiplicity, for example many candidates interacting with one employer. ## Lanes: partitions inside a process Clause 10.8 describes a lane as a **sub-partition within a process** that extends the entire length of the process. The standard says the meaning of lanes is **up to the modeller**; it does not specify their usage. Common choices: - internal roles, such as Recruiter or Hiring manager; - departments, such as Talent acquisition or Finance; - systems, such as an applicant-tracking application. Lanes can be **nested** (departments, then roles within them). A process can hold several **lane sets**, each partitioning the same flow nodes a different way; all lanes in one lane set must use a partition element of the same type. ## Applying it to the hiring process The hiring process involves four parties: the candidate, the recruiting team, the hiring manager and an external background-check agency. The first question is which of them are **independent participants** and which are **parts of one organisation's process**: 1. The **employer** is a participant. Its process (screen application, interview, decide, make offer) sits in one pool. 2. **Recruiting** and the **hiring manager** work inside that same process, so they are **lanes** in the employer's pool. 3. The **candidate** acts on their own behalf; the employer cannot sequence the candidate's actions. The candidate is a **separate pool**. 4. The **background-check agency** is another organisation with its own process. It is a **separate pool** too. ## In the interchange format The XML keeps the two apart. The **collaboration** lists one `participant` per pool; only the employer's has a `processRef`, so the candidate and agency are black boxes. The employer's **process** owns a `laneSet`, and each `lane` names the flow nodes it partitions with `flowNodeRef`. A lane never points at a process of its own; a participant never lists flow nodes. The example below shows this structure for the hiring model, with the employer's process marked `processType="Private"`. ## What the distinction changes - **Accountability.** Placing an activity in a lane states which part of the organisation is responsible for it inside that process. Placing it in another pool states that a different party performs it under its own control. - **Flow.** Within the employer's pool, a sequence flow runs from Recruiting's `Screen application` to the hiring manager's `Interview`. Between the employer and the candidate, only message flows connect, because the candidate's steps are not driven by the employer's token. - **Scope.** A lane never has a process of its own, so it cannot be a separate party in the conversation. That is what a pool is for.

  • In BPMN 2.0, may a diagram show one pool without a boundary?
    Yes. One, and only one, pool in a diagram may be presented without a boundary, typically the process of the modeller's own organisation, considered internal. If there is more than one pool, the remaining pools must have a boundary.
  • In BPMN 2.0, what does a multi-instance marker on the Candidate pool mean?
    It marks the participant as multi-instance: more than one candidate takes part in the interaction. The marker is three parallel vertical lines centred at the bottom of the pool, and the participant's multiplicity carries a minimum and maximum.
  • In BPMN 2.0, can lanes be nested, for example Talent acquisition with Sourcer and Recruiter inside it?
    Yes. A lane can hold a child lane set, so lanes can be nested or arranged as a matrix, such as departments on the outer level and roles within each department.

A pool is a separate company in a joint project; lanes are the departments inside one of those companies. Departments hand work to each other internally, while companies only exchange correspondence.

saying these in an interview costs you the question

  • Treating a pool and a lane as interchangeable swimlanes
  • Modelling the candidate as a lane in the employer's pool
  • Believing a pool must always contain a process
  • Thinking a sequence flow may cross from one pool into another
  • Believing BPMN fixes lanes to mean organisational roles only
open as a page

In a BPMN 2.0 hiring collaboration, when should the background-check agency be a black-box pool rather than a white-box pool?

level: middleimportance: should knowfreq 30%

basics

~20 s

In BPMN 2.0 a black-box pool references no process and message flows attach to its boundary; use it when the agency's internals are unknown or not yours to model. Use a white-box pool when its activities matter.

open as a page

In BPMN 2.0, why is a lane labelled 'Background-check agency' not a participant, even though it names a separate organisation?

level: middleimportance: should knowfreq 35%

basics

~20 s

In BPMN 2.0 a lane is only a partition of one process: it has no process of its own and is not a party to the collaboration. Naming it after the agency still makes the agency's work part of the employer's process.

open as a page

A BPMN 2.0 hiring model is one pool with lanes Candidate, Recruiting, Hiring manager and Agency, linked by sequence flows; what does it misstate, and how would you restructure it?

level: seniorimportance: should knowfreq 28%

basics

~20 s

In BPMN 2.0 one pool is one process with one controller, so this model claims the employer sequences the candidate's and agency's actions. Restructure as a collaboration: employer pool with internal lanes, separate participant pools, message flows.

open as a page

In BPMN 2.0, how do choreography and conversation diagrams differ from a collaboration diagram of the same hiring interaction?

level: middleimportance: nice to knowfreq 18%

basics

~20 s

In BPMN 2.0 a collaboration shows participants as pools exchanging message flows; a choreography models the ordered message exchanges between them with no central controller; a conversation diagram groups related message flows into hexagons for a bird's-eye view.

open as a page