Search code examples
messagesendbpmn

Is messaging from two pools to one pool allowed in BPMN?


I have three pools, senders A (a human task), B (a Service Task) and receiver C (doesn't matter). The pools are asynchronous and there is no callback.

Pools A and B both send message1 to pool C StartMessage event.

Is this a valid use of send message, from multiple sources to one receiver, or do I have to duplicate the message and have two StartMessage events?


Solution

  • The BPMN spec says YES, this is valid (on p. 246 of the 2.0 version): "A Start Event MAY be the target for a Message Flow; it can have zero (0) or more incoming Message Flows. Each Message Flow targeting a Start Event represents an instantiation mechanism (a trigger) for the Process. Only one of the triggers is REQUIRED to start a new Process."

    (In your case you have one type of message 'message1', so this is straightforward, as just said. In case you have different messages, the spec would require either a "multiple event" - which allows multiple event definitions behind the scenes - or as an alternative would require you to display those different message start events separately in the diagram.)