We have bunch of applications in our bank, many of them have a built-in flow-engine(using BPM or not), I want to build a shared standalone BPMN Server, then make those applications communicate with it through rest api.
At first, I thought that should be a simple task., but after setting up a demo project and playing with flowable-ui applications, I have many questions now
How can a standalone flowable engine interact with a client application? For example, when a process get finished, how to notify the client application? If we use a listener, we need to develop a listener class and deploy it with the standalone flowable engine? I think no matter how to do it, those client application need to change quite a lot, to be the server side to receive notification or subscribe to a message queue etc, am I right ?
Why the documentation have no content about this topic ?
Are flowable-ui applications ready for production use, or they are just for demeonstration ?
For the purpose of a REST based BPMN Server we provide the REST app. It includes the REST API for the BPMN, DMN and Form engine. That’s really easy to start with.
Then there’s the different UI applications. The Flowable project uses these applications to show the functionality of the Engines provided by the project. The Modeler and admin application are definitely ready for production usage. The Flowable Task application is more an example application, but if it suits your needs… As you may know we also have a commercial offering (https://www.edorasware.com/), which might suit your needs as well.
Now answering your questions specifically:
For this purpose I would advise to use the Flowable Engine embedded in the application. That would make it a lot easier to react on events. But with the REST server approach it’s also possible by using an execution listener indeed.
It’s difficult to write generic documentation about this, because it requires custom coding and a lot of use case specific questions need to be answered.