Hey @ays,
Thanks for giving us so many details in your post.
Have you read the Event Registry Introduction? Good reading material is also the Event and Channel Models.
Let me try to describe briefly how it works here. Inbound channels are independent than any BPMN process. They are not dedicated to any task. For example an inbound channel is a channel listening on the Responses queue. Whenever, a message the engine checks for all registered activities which are listening for this message. All activities which are listening for this message will get triggered.
With your example if you have a single Responses queue then you will have one channel which listens on this queue. Whenever a new message comes in, based on the defined correlation parameters it will look for all tasks, boundary events that match them and trigger them. The correlation parameters are defined on the task level. For example you can have a task that doesn’t use them, this would mean that this would be triggered every time a message comes in. Or a task might use only a single parameter, so it will be invoked when a message contains a correlation parameter with that value.
In your example if you have 2 channel definitions linked with different event definitions then they will race for messages. I would advise using dedicated .event
and .channel
files for this.
The reason for that is because the event and channel definitions are deployed to the event registry engine. You’ll have to find and delete the deployments in that engine that have the process engine deployment as a parent.
Have a look at the answer here. tl;dr we don’t have a date for the next release yet.
Hope this clarifies some of your peculiarities.
Cheers,
Filip