Transactions in CMMN Cases


#1

The Transactions in Processes documentation is comprehensive regarding transaction boundaries and wait states in BPMN processes.

Is there any similar documentation regarding transaction boundaries and wait states in CMMN cases? Specifically, I would like to better understand which stage and task configurations result in the creation of jobs to be executed by the job executor and how to anticipate rollback behavior across process tasks.


#2

Hi @clay.rowland,

The principles described in the docs section you linked apply to CMMN as well. It is actually even a little simpler, because we do not have asynchronous continuations in CMMN and the current implementation does not support timer events. That means, there is never a job that triggers something directly in a CMMN case (of course you can have a process task with async continuations that on completion continues the case).

The rollback behavior for process tasks is the same as for example for BPMN call activities. I.e. let’s imagine a user starts a process task via case service and that process task raises an exception synchronously (i.e. no wait state or async continuation in between). Then the exception bubbles up to the API call and ultimately to the user, who can then retry the action. You can then use async continuations in the called process to add a save point before any processing exceptions can occur.

Cheers,
Thorben


#3

@thorben, thanks for the reply. If there are multiple process tasks and/or stages in the case, will each execute within its own transaction, or will they share a transaction?