You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Allow advanced workflow patterns with exclusive jobs for tasks in multi-instance sub-processes.
User Problem 🤦
Context:
A process can start multiple "subprocesses" (via Multi-Instance Call Activity).
In certain scenarios, tasks in the subprocess should be executed exclusively as it, e.g., uses resources that do not allow it to be executed in parallel.
Problem:
The job executor cannot track exclusive jobs beyond one process instance as the parent process, and the called process will have different instance IDs
OptimisticLockingException (OLE) can occur.
The executor handles the OLEs, and the retries are not decreased (so no incidents occur due to this)
OLEs are not hindering exceptions, but they still appear again and again in the same place and are also visible in the log
Current workaround: The business team defines special retry time cycles at certain points to perform retries faster.
User Stories 🧑🚀
As a developer, I want to use an exclusive continuation for tasks in a multi-instance sub-process to ensure a task is not executed in parallel.
Implementation 👷
Solution outline
Add root process instance id column to the runtime job table.
Replace the process instance id with the root process instance id for the process instance and the runtime job in the condition of the job acquisition query.
For the top-level process instance, root process instance id == process instance id so the previous behavior is maintained.
Since jobs already run on a previous Camunda version the root process instance is null.
A fallback to the process instance id columns is needed.
Open questions
Is it problematic to roll out this new behavior to all the users? Are there cases in which this behavior is problematic or undesired?
The performance for jobs with no root process instance id populated degrades since the job acquisition query is more complex; is this acceptable?
Are there users that want to maintain the current behavior? Since nobody has asked for this new behavior, the answer is probably yes.
Should we make this configurable? In the process engine config or on the BPMN model level?
Implementation Notes
The content you are editing has changed. Please copy your edits and refresh the page.
Value Proposition Statement 🚀
Allow advanced workflow patterns with exclusive jobs for tasks in multi-instance sub-processes.
User Problem 🤦
Context:
A process can start multiple "subprocesses" (via Multi-Instance Call Activity).
In certain scenarios, tasks in the subprocess should be executed exclusively as it, e.g., uses resources that do not allow it to be executed in parallel.
Problem:
The job executor cannot track exclusive jobs beyond one process instance as the parent process, and the called process will have different instance IDs
OptimisticLockingException (OLE) can occur.
The executor handles the OLEs, and the retries are not decreased (so no incidents occur due to this)
OLEs are not hindering exceptions, but they still appear again and again in the same place and are also visible in the log
Current workaround: The business team defines special retry time cycles at certain points to perform retries faster.
User Stories 🧑🚀
As a developer, I want to use an exclusive continuation for tasks in a multi-instance sub-process to ensure a task is not executed in parallel.
Implementation 👷
Solution outline
null
.Open questions
Implementation Notes
Tasks
🤖 This issue is automatically synced from: source
The text was updated successfully, but these errors were encountered: