I’d like to ask some questions regarding a multiple applications / central BPMn engine scenario.
What would be the best practice for you considering these two options:
- Install flowable in a dedicated Tomcat or other application server.
- Each of my applications will use this central BPMN engine REST API to upload its workflow (let’s say a BAR since they will have some custom ServiceTasks?), start some tasks and so on.
- Some workflows will have to call another application (micro-service, SOA, …) through JMS/REST to get some data needed to continue (so applications will have some custom JavaDelegate to do that).
- In such a case should I write some kind of utilities based on Spring, bundle them into a JAR and put it next to the BPMN engine (web-inf or something), so that these custom JavaDelegate can find these utilities, or is this something that should be bundled within each application’s BAR?
- Creating a Spring boot app bundling the various spring boot starters for the bpmn engine, the modeler, the auth server and so on.
- This application would expose the BPMN REST API so it would be in a way a central BPM engine like said above in the first solution.
- It would have the utilities to call services through JMS/REST bundled (custom package)
- Each application would deploy a BAR via the REST API, and the JavaDelegate would have access to the utilities to call services through JMS/REST because they would share the same classpath and process engines.
I’d appreciate the fact that we would have only one BPMn engine instead of each application running the engine itself, for monitoring purposes and so on.
Besides I would also prefer the first solution because I won’t have to create a custom app that would serve as a delegate around what you all have already written, but how to bundle my utilities to write and read through JMS/REST is not really clear to me with that first solution.
Thank you all for your inputs