BPMN Spec.: Are multiple message flows to/from intermediate message events allowed?

681 views
Skip to first unread message

Kai Grunert

unread,
Jun 23, 2016, 9:26:25 PM6/23/16
to BPMN Forum
Hi,

I'm currently reading the BPMN spec (Version 2.0.2). I'm a little bit confused about the number of allowed message flows in BPMN:
  • For Start Events the Message Flow Connections section states (10.5.2):
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. 
  •  For End Events the Message Flow Connections section states (10.5.3):

    An End Event MAY be the source of a Message Flow; it can have zero (0) or more outgoing Message
    Flows. Each Message Flow leaving the End Event will have a Message sent when the Event is
    triggered. 
     
  • For Send Tasks the spec. says (10.3.3):

    ... One or more corresponding outgoing Message Flows MAY be shown on the diagram.
    ... The Message is applied to all outgoing Message Flows and the Message will be sent down
    all outgoing Message Flows at the completion of a single instance of the Task.
     
  • For Receive Tasks the spec. says (10.3.3):

    ... One (1) or more corresponding incoming Message Flows MAY be shown on the diagram.
    ... The Message is applied to all incoming Message Flows, but can arrive for only
    one (1) of the incoming Message Flows for a single instance of the Task.
     
  • For Intermediate Events the Message Flow Connections section states (10.5.4):

    - A Message Intermediate Event MAY be the target for a Message Flow; it can have one incoming
    Message Flow.
    - A Message Intermediate Event MAY be a source for a Message Flow; it can have one outgoing
    Message Flow.


The last statements for Intermediate Events is what makes me wondering:

1. Why is an Intermediate Throwing Message Event not allowed to have multiple outgoing message flows? (It could have the same semantics like the Send Task.) Or is it allowed, since the UML diagram seems to always allow multiple (sourceRef) message flows for all InteractionNodes (section 9.4)?
1.1 Am I right that the semantic of multiple outgoing message flows for an End event is to send exactly the same message like it is with the Send Tasks? Or is it allowed to send different messages to other participants, because this is not further specified?

2. Why is an Intermediate Catching Message Event not allowed to have multiple incoming message flows? Or is it allowed, since the UML diagram seems to always allow multiple (targetRef) message flows for all InteractionNodes (section 9.4)?
2.1 For Receive Tasks without a multiple instance marker it is allowed to have multiple incoming message flows. Is my understanding correct that this is useful, if someone can get the same message from multiple participants? (This would be a race condition, but I think it is not a big problem for BPMN since the remaining incoming messages are simply discarded.) 

Thanks in advance,
Kai
Reply all
Reply to author
Forward
0 new messages