Just transitioned from Drools Flow 5.1.1 and am adding my own Process monitoring in an existing webapp. We will use gwt-console-server RESTful services to do this.
Our typical process has 3 main sections, 1. get a bunch of files from somewhere, 2. process them into a database, 3. extract and transform from that staging db into a central database. Typically we would run once a day on a Timer or maybe 10, noon, 2 and 4 PM, CRON like.
We might fail at a Node inside section 2 above, fix this manually and want to restart at the first Node in secrion 3. So our current thinking is that we add a 'special' Diverging Gateways XOR (pointer to an example of how to do this welcome). This would have a custom dialog that allows the user to select Node names from that Process and match them to branches, then underlying generate the if, else if, else mvel code. On entry to the Process it would direct to the correct branch and lead to the Node part way through our Process, the default Node would be the Timer.
This way our console can have a store of the valid restart Nodes names (internally matched to the ProcessInstanceId) and allow them to select it for a stalled process. This would then stop that Process and restart it passing in the arg that has the Node name which is used by our special Diverging Gateway. When it finishes we restart without the arg and it selects the normal Timer. This way we can skip unnessary Nodes after a stalled Node.
Is this a reasonable approach?