Do you see this as specific to one specific process, or just a compensation mechanism for all processes executing on your engine (like, if anything goes wrong, do this)?
More like specific to a process. Mainly because having one mechanism for entire process engine could be too generic, will be difficult to handle what shall be done for particular error in particular process, especially if the process definition is big and there are quite many definitions running.
My initial idea was that each activity can (but does not have to) register to a compensation manager on execution time specifying what/who to invoke in case of rollback. Scope of it will be of course transaction, so on commit/rollback compensation manager will drop all registered listeners for given process. However, I don't know how does it fit BPMN2?!

/Maciej
 
2010/5/31 Kris Verlaenen <kverlaen@redhat.com>
Maciej Swiderski wrote:
Hi,

first of all, that's really great that jBPM 5 is on its way to be started. This is really important to know because we can prepare some long term planning.
There was number of different threads about jBPM5 features and I have to admit that they cover almost everything that is required for first release, to make it interesting for any customer. I hope you could come up with a long term road map as well to illustrate to the customer that it is going to be enhanced and will live quite some time (that I am sure of but sometime without hard facts it is not so easy to convince business people).
Yes, we're focusing on the first releases now (for obvious reasons ;)), but we'll be defining a long-term roadmap as well, which will include productization etc.


In one of the threads there was discussion about web editor for process definitions and I have to say that from what I noticed so far, for business experts this is really important. Eclipse based tools are not of any interest for them, they are far to complex (as they used to say). Web based editors - this is what they want, especially with some repository capabilities and (what would be perfect) with collaboration capabilities where business experts can share and exchange ideas (and processes). What is really important as well about web process editor is to have "two way support", meaning that process developed in web editor can be consumed by eclipse based tool and the other way around without lost of information. This was something that was missing in current web editor (signavio) and eclipse plugin for jBPM 4.x.
Like I said in the previous mail, I hope that BPMN2 will be the answer here, providing interoperability between different (possibly external) components, even for round-tripping.  But we need to give the spec and the tools a little more time to mature still I think.


Another thing that could be quite useful is to have some kind of mechanism that will support compensation. What would be good to have is to provide compensation manager on process instance level that could invoke some stuff in case of rollback (unexpected errors on process execution). Process execution is within transaction boundaries but unfortunately not everything is (or can be done) in transactional manner. This does not have to be very sophisticated it is just to give some kind of listeners that could be used by process developers to take some actions on rollback, even if that will be just to send an email to administration personnel.
Do you see this as specific to one specific process, or just a compensation mechanism for all processes executing on your engine (like, if anything goes wrong, do this)?


Ok, I think that's all. As mentioned before, most of the items were already addressed by others. Thanks for that, and hope the dialog will go on.

Last but not least, I would like to take the chance to offer my help in development (and any other tasks you find me useful). So whenever you have complete plan and some issues to do, just let me know I will be on it ;)
That would be great, I bet we can find you plenty of tasks ;)  Drop me a private email and maybe say what areas you are mostly interested in (like are you more a core, web or eclipse guy), or if you have specific ideas on what you want to do, and we'll see how we take it from there !

Kris