Intermediate Signal events


What is the difference between signal and message events?

I see that Message throwing event also can be broadcast.

And For Intermediate Message throw event/Message End event, i see the implementation part in modeler.Where as for Intermediate Signal throw event/Signal End event, i don’t see the implementation parameter in modeler.

So, Does it mean that :

  1. Signal throw event is to be used just to signal(with variables,and can be caught by signal catching event).
    2)Message throw event is to be used when we need to send a message(with variables) and want to do extra things like sending a mail/doing specific task(external /Java class implementation)?


Hi @sindhu_veladi

the documentation says the following:

Signal Events:

Signal events are events which reference a named signal. A signal is an event of global scope (broadcast semantics) and is delivered to all active handlers.
Note: It is important to understand that a signal event is broadcast to all active handlers.

Message events

Message events are events which reference a named message. A message has a name and a payload. Unlike a signal, a message event is always directed at a single recipient.

So yes, basically you are correct. Use the signal events if you just want to signal other events that something happened and use the message event if you want to send specific data to another recipient.

Hope that helps.


@MichiDahm Sorry, i think broadcast is not possible with message throwing event. Only Signal throwing event can broadcast.

The BPMN specification does indeed prevent this - but the camunda engine does have API to “correlate all” which would act like a broadcast. But be aware that if you use that it is technically in violation of the standard.

1 Like