Intermediate and End message throw events

A person with some activiti experience here. In there, they don’t implement the throw message concept, but I see Camunda has them. I failed to understand how it is done from the docs, sorry if it was discussed earlier, I just failed to find…

What I see is that a rectangle black envelope calls a Java code. Will it be correct to assume that the round event throwing elements do the same? With the difference that the rectangle ones can be multiple

There are indeed 2 main ways of sending messages
A Message Send Event and a Message Send Task. from an implementation point of view they would be the same. A java class that does something like this:

	execution.getProcessEngineServices()
		.getRuntimeService()
		.createMessageCorrelation("MessageName")
		.processInstanceBusinessKey("BusinessKey")
		.correlate();

One of the differences is indeed the ability to add a multi-instance but more importantly you can add a boundary event… for example an Error Boundary event. This can be quite useful.

1 Like

Thanks, nice explanation!

Hi @Niall ,

So an external implementation for intermediate throwing message event is same as external task implementation? Same external task client API would work for this?

Thanks,
Sindhu.