Exclusive event-based gateway
An exclusive event-based gateway is used to branch a process when alternative paths are determined by events Throw message, Throw signal, and Wait for timer rather than by conditional flows.
This can happen when the decision about one of the alternative paths is taken by someone out of the process. For example, a signing contract process expects a signal regarding a client's decision during the negotiation process. Further development of the process depends on this decision (Fig. 1).
Depending on which event occurs first, the process will take the corresponding path. In the mentioned example, if the customer agreed to the conditions, the process will proceed with the “Sign contract” user task, and if the customer refuses – the process will end. In any case, only the expected event that occurs first will be processed, and all subsequent events will be considered no longer valid.
Outgoing flows for the exclusive event-based gateway are sequence flows. The gateway is used in conjunction with intermediate catching events: Wait for message, Wait for signal, or Wait for timer.
As soon as the first catching event is triggered, the gateway activates the corresponding outgoing flow and then ignores any other events.