I am evaluating flowable and other Java bpm engines for our firm in order to decide which one would be best suited for our needs. Failover / redundancy / scalability / disaster recovery are important criteria for us. I am new to flowable and I have reviewed the docs on the website and installed and successfully run the examples both embedded as well as in Tomcat, however, I didn’t find information on the above areas so I have some specific questions:
What sort of failover capabilities are there in flowable? If the JVM where the engine is running becomes unavailable (e.g., due to an OutOfMemory error) is it possible to failover to another engine and continue the process without restarting it or repeating the previously completed tasks?
Similar to above, if we detect that tasks in one vm are falling behind due to high volume is it possible to offload the remaining tasks in an engine in another vm, again without restarting the process or repeating completed tasks?
Does flowable support farming out tasks to remote vms? For example, if we want to execute a data oriented task in a remote vm, possibly because data is already cached there, is that possible? I understand I can do this using custom code where the service task class makes a remote call via REST or socket, but short of writing custom code, does flowable offer support for this, maybe using embedded agents, etc?
The docs mention that a transaction starts at a wait state and ends at the next wait state. What happens if there is a failure in the transaction? How does flowable recover?
Finally, is there any whitepaper, presentation, etc. available that provides more information about failover, redundancy, scalability and recovery issues?
Any help would be appreciated. Thank you