We’re evaluating Zeebe for a large bank and so far we’ve been pretty impressed! But we ran into an issue while exploring BPMN process evolution.
The BPMN documentation says:
The new instance of the defined workflow will be created of its latest version - at the point when the call activity is activated.
This is a problem for my development team. If I implement a change in a child BPMN that makes it incompatible with older versions of the parent BPMN, then we see two issues:
- Since files deployment is not atomic, the new parent version could arrive first, be picked up and used with an older version of the child BPMN,
- An incomplete, old workflow instance based on an older version of the parent BPMN will pick up the new incompatible child which will break the workflow.
We could abandon using subprocesses in child BPMN files but that would cause massive duplication. Any idea how we can keep using subprocesses/call activity but avoid the problem stated above?