About Signal Intermediate Events
A signal intermediate event receives a signal. It cannot start a process instance. A signal intermediate event can be configured as catching or throwing.
A catching signal intermediate event results in the generation of a trigger condition that is always active. In other words, a published signal that matches the condition of the catching signal intermediate event is always received and held until such time as the sequence flow(s) are received.
In BPMN terms, this is described as the step or subprocess being activated. In strict BPMN terms, an catching signal intermediate event should not fire until the inbound sequence flow has reached that step. It can be argued that the current implementation does not adhere strictly to BPMN 2.0 because the signal is received and held before the sequence flow reaches the catching signal intermediate event.
However, strict adherence to BPMN 2.0 in this case could result in unwanted results, such as race conditions and lost signals. This interpretation of BPMN 2.0 avoids these potential problems.
Related Topics