For communication that crosses the boundaries of your process’ pool, you need to use message flows . To account for additional complexity, communication with message flows needs to be defined more explicitly than intra-pool sequence flow communication. Therefore, BPMN uses events. Each incoming message is received by a catching event — the organization waits for the corresponding incoming message.
Here’s an example:
The delivery address for the package is provided from the order website. Later, you confirm the arrival of the package by sending a message back to the website. Interaction is not limited to activities, but also occurs between pools! The message flows have these little circles on their tail — that’s where you plug them on the activities (or events) to signalize an outgoing message. Because the different lanes are part of your organizational context, you don’t have any kind of message flows occurring within them — use sequence flows instead.
You cannot have sequence flow that traverses pool boundary. To represent details of collaboration (i.e. how do they exchange messages) between participants you should use Message Flows. Those are arrows drawn with dashed line.
Message Flows are only allowed between the pools. You cannot have message flow inside a pool.