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.
Signals work using subscriptions. When a process 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 subscription will be used to start a new process instance.
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.