Service orchestration with subprocesses / How to trigger job acquisition explicitly
Hi, I have some questions and would be really happy if someone could help me with some hints.
We want to orchestrate the execution of
Tasks between different applications with camunda bpm. Imagine multiple applications each with its own
workflow-engine (like the hybrid approach written here) on top of a shared database.
We are in a Spring-Boot environment.
There are two applications. A parent application with a workflow-engine which deploys the parent-process.bpmn. A second application with a workflow-engine which deploys the child-process.bpmn. The parent-process.bpmn executes a
ServiceTask (in this case just logging), then triggers the "Call Subprocess"-
CallActivity (which is then doing its stuff) and then executes another
ServiceTask. (When setting the
Asynchronous Boundaries correctly this is working like charm)
Because both applications are
deployment-aware the child-process is only executed when it gets picked up by the
JobExecutor of the child workflow-engine. So the child is continuously polling the database for unlocked processes. It can take quite long until the subprocess gets picked up.
- Is there anything in this ecosystem to eliminate the necessity of this polling? Because in some cases this is just not fast enough (imagine the surrounding
ServiceTasks to be
UserTasks, no user wants to wait such long time).
What we have in mind is something like an event handling mechanism. An event that is thrown when the process instance is pausing the execution. This event can then get picked up by any other responsible workflow-engine to continue the process instance execution. (E.g. with a message bus)
camunda-bpm-reactor seemed to go into this direction, but I read somewhere in this forum that it is not under development anymore.
Is there any way to trigger the
Job Acquisitionexplicitly? The only possibility I found is the
ManagementServicebut its intention seems very different.
Is it a bad idea to model this without
MessageEvents? We are modeling it without because in our opinion this is not business but architecture related.