My team is using the Activiti 5.19 engine embedded in a Grails 3.1.4 WAR deployment (Spring Config). Our application is being developed against development and pre-production Apache Tomcat stacks. We have been very pleased with the engine and what it has to offer. As we approach a production release, I have been contemplating an issue that we have encountered. The issue in a nutshell is how to keep our Grails application code in line with BPMN process definition versions. We use the Grails application to get input from our users, complete task, fill out forms related to workflow, and update workflow status instance variables. I know the process definitions complete at their current version, but our application code changes over time. A good example of this is form processing for a new Task definition in a parent process definition. The application code must change to process the Task, but previous incarnations of the process definition (and application code) didn't have the task/processing defined. I hope this problem description is clear. I have read information from the Activiti in Action book suggesting Java Service classes and BPMN versioning solutions via OSGI - is there anything I should be looking in terms of strategies or technologies that would help us keep our Grails application code in line with BPMN process definition versions? Does anybody have any experience like this, or can somebody point me public code/reading that may help with this scenario. Thanks for the opportunity to ask this question - it is my first in this forum, please let me know if I have made a posting error in any way.