Signals
Signals are a similar concept to messages. However, messages are correlated to a specific process instance, whereas signals can trigger all the matching signal events with a single broadcast. Depending on the type of signal catch events, the process instance will respond accordingly.
Broadcasting signals
You can broadcast signals in two ways:
- Using Zeebe's
BroadcastSignal
RPC - Using a signal throw event or signal end event
Signal subscriptions
When you broadcast a signal it triggers all signal subscriptions that match the signal name.
When a process instance encounters a signal catch event it creates a new signal subscription. This process instance waits until a signal with a matching name is broadcasted. You can define the signal name in the process definition.
Deploying a process with a signal start event also creates a new signal subscription. In this case, the triggered subscription starts a new process instance.
Signal cardinality
A broadcasted signal iterates over all available subscriptions. As a result, a single broadcast triggers all the signal catch events that match the signal name, and all partitions.
Signals can negatively impact the performance of Camunda 8. Performance is impacted in two ways:
- Signals trigger all available subscriptions that match the signal name, potentially resulting in the continued execution of many processes.
- Signals are broadcasted to all partitions, resulting in lots of network traffic. This scales linearly with the number of partitions.