Situation:
I have multiple web applications(lets call them client applications) that need to manage a set of processes(intersecting). From what I have gathered, best course of action (correct me if i am wrong) is to deploy activiti engine standalone (lets call it server application)and drive activiti engine through rest calls.
I need clarifications/suggestions for:
1 – Is all i need activiti-rest.war activiti-explorer-war or is it for demo purposes and i should create server application myself. My current understanding is that
1a) If i should use activiti-rest & activiti-explorer in production environment, typical scenario seems to be:
- Create a project for process development(lets call it processes project)
- Perform unit testing through a custom engine configuration.
- Generate jars for java classes.
- Add jars to production path
- Deploy processes.
- Access from client applications through rest api
In this scenario I don’t understand what is the best course of action handling process development. Lets say multiple team members working on process project and updated a number of processes and we are updating production server.
Q1) Should i track changed processes and deploy them? which is error prone
Q2) Should i deploy all the processes? which seems less than ideal because i am creating a new version of processes that didn’t change.
1b) If i should create a custom application and an activiti engine, no need for a seperate project, process classes and resources will be in the custom server application. In this case:
Q3) again how to manage changed processes? There must be a way to track them, i guess i am looking for something like declaring process version, and the engine checks the version against the database and deploy if a newer version is detected such as
<process id="my-process" version=”1.1” >
BPMN2.0 standard does not include versioning according to activiti user guide. But I couldn’t figure out how activiti engine is meant to handle project versions automatically. Am I missing something?
Q4) How can i expose rest functionality through custom server app? ( there seems to be spring-boot-starter-web jar exposing rest functionality. Is it for only spring boot apps? What about non boot spring apps should i use the same jar or there is another one?)