3.10. Updating Processes

Over time, the requirements for a process might change. In order to update a process, it is necessary to deploy an updated version of the process. The updated process must have an updated version number to distinguish it from the old process; this is necessary because the old process may still be required by an existing process instance.
Whenever a process is updated, it is important to determine what should happen to the already running process instances. There are three possibilities:
  • Proceed: The running process instance proceeds as normal, following the process definition as it was defined when the process instance was started. As a result, the already running instance will proceed as if the process was never updated. New instances can be started using the updated process.
  • Abort (and restart): The already running instance is aborted. If necessary, the process instance can be restarted using the new process definition.
  • Transfer: The process instance is migrated to the new process definition; that is, once it has been migrated successfully, it will continue executing based on the updated process logic. For further details see Section 3.11, “Process Instance Migration”.
The default behavior follows the proceed approach, which results in multiple versions of the same process being deployed. Existing process instances continue executing based on the process definition that was used when starting the process instance.
The version number should be tracked to determine which version of a process definition a process instance is using. The current version of the process can be retrieved:
processInstance.getProcess().getVersion()