Details
-
Feature Request
-
Resolution: Unresolved
-
Major
-
None
-
jBPM 6.4.0.Beta1
-
None
-
0
-
0%
Description
Team,
This is a broad features request for the creation of a public API to intervene in process state. I'm specifically referring to long running persistent processes within either the built-in runtime engine or through some equivalent custom runtime.
Let me present a scenario:
Node M is a human task.
Node N updates a legacy financial system.
Node O sends a notification through some API.
If node O throws an exception, the process state returns to node M. However, let's assume that node N is actually NOT rolled back.
This is an unfortunate reality – many users are relying on legacy systems. Today I saw this exact scenario, where node N was implemented as a raw socket connection to a legacy Progress based financial service.
Of course, there's no way to automatically handle this situation. However, right now there's no way to handle this situation through any type of manual intervention, either. The process is running and waiting on user action M, but the update in the financial system is completed. Now, multiply this by maybe 100s of processes getting into the same state while the system contacted by node O was down.
At a minimum, I would like for their to be a way with the public API to say "we have performed all the required backend work and fixed the error in the system, go to node O and then proceed as normal". As far as I know, there's no public way to accomplish this.
I realise this is a big feature request and will require much design, etc. I also realise that it does change the public API in a major way. The priority is major only as the default – I don't have the right ability to set the priority. However, this is a real world concern for the project that is not addressed, to my knowledge.
Cheers!