Can a signal event be thrown and caught within the same pool?


#1

Looking for the proper BPMN-pattern:
Two Departments execute a search for a lost item independently from each other (two activities in two lanes). Each search has to be terminated as soon as the other department has found the item. As both search activities are within the same pool, I can’t use a boundary message event here. Would the signal event be appropriate?
(Yeah - this would be the first meaningful use of the signal event I have ever seen)

Alternatevely I’d considered using the conditional event as a boundary event. But that smells somehow strange…

I could also use one MI-parallel task in a single lane. But how can one instance of a parallel MI task react on the outcome of the other? Error Event? Smells even stranger.

None of the solutions discussed here seems to me appropriate for human readers. Can anyone provide a better Idea?

I attach a diagram here I created. I will advise the customer to use a much more simplified model, but in order to understand the pattern and the correct way to model it I provide the model. The timeout events for the search even lead to crisscrossing sequence lines. That smells awfully.Lost Item.bpmn (19.3 KB)


#2

@RainerFeldbruegge just FYI camunda team has mentioned a few times in the past that messaging in the same pool does not work “the best”. Unexpected behaviour can occur.