# BPMN pools and lanes A pool is a participant, usually a whole organisation or system. A lane subdivides a pool into roles. Between pools you can only send messages, which is exactly right: you cannot control another company's process. That constraint is the single most useful thing about BPMN. --- ## When it matters * Cross-organisation processes. * Any process where the handoffs are the interesting part. --- ## The symbols | **Symbol** | **Means** | | -------------- | --------------------------------------------------------------------- | | Pool | A participant. Contains a whole process, or is drawn as a black box. | | Black box pool | Collapsed, with no internal detail. The usual way to show a customer. | | Lane | A role or system inside a pool. | | Message flow | The only connection allowed between two pools. | --- ## A few things that catch people out * Draw external participants as black box pools. You do not know their internal process, and pretending you do is misleading. * One process per pool. Two processes in one pool is a modelling error. * Lanes are organisational, not technical. They do not change execution. --- ## Related [BPMN data objects and storesWhat the process reads and writes.](https://help.gocapable.com/diagrams/bpmn-data-objects-and-stores.html) [BPMN groups and annotationsNotes that carry no semantics.](https://help.gocapable.com/diagrams/bpmn-groups-and-annotations.html) [BPMN notation referenceBack to the full symbol reference.](https://help.gocapable.com/diagrams/bpmn-notation-reference.html) --- _Sequence flow stays inside the pool._