Which workflow engine to choose?

I've just been doing an evaluation of Activiti vs jBPM.

In fact there seems to be very little between the two solutions.

  1. Activiti is Apache V2, jBPM 5.0 is also Apache V2.
  2. We're currently using Activiti, but the project is still in dev, so I can't comment on its robustness in production.
  3. jBPM is beginning the productization process, so support for 5.x will be available in Q1 2012, see slide 32: jBPM demo. jBPM 4 was not supported by Redhat.
  4. jBPM 4.x did not support BPMN 2.0, but 5.x does, Activiti does as well. jBPM 5.0 has just been released, which includes support for BPMN 2.0. So now both solutions support BPMN 2.0.
  5. I'm not quite sure what you mean by this, but you can do a lot through both APIs
  6. Again, not sure what you mean by this, do you mean embedded as part of an application server, in which case, yes for both solutions.

One of our criteria for jBPM was the interaction with Guvnor, and when I downloaded and ran the demo install for jBPM (28/03/2011) and there still seemed to be some major bugs (GUVNOR-1274), so I personally would test a lot more before I chose to pursue this solution.

In fact, we will be recommending one of the above two solutions, but we're not sure which yet, we'll look at it more closely later this year.


Although I have little practical experience I did undertake a research spike into java BPM options recently. I narrowed it down to 3:

  • jBPM
  • Drools
  • Roll your own

The Drools community seems more active, tools are better, the rules engine was very sophisticated (as this was the base of drools) but surrounding business process were well integrated. However jBPM was more focused around business processes and slick as well. They are both managed by JBoss

Further comparisons between Drools and JBPM can be found here:

Drools v jBPM

If you have a confident development team and the requirements aren't too complex it is always worth considering rolling your own. BPMs can lead to anaemic domain models (as described in this post Rules Engine pros and cons about rules engines ) as you try adopt your domain models to fit into such systems, also well built systems customised for your business are always going to be more effective.

As far as your criteria goes:

Open-Source and OEM friendly license - Drools uses a liberal 'ASL/BSD/MIT-esque license', community is active. jBPM uses apache, eclipse and MIT licenses

Production Installations. I understand drools is used by many insurance companies and credit checkers, not sure a jBPM

Commercial Support available for both

Open Standards Support - BPMN - Both implement BPMN and due to the nature of the open source projects are very standards orientated.

Dynamic Creation/Assembly of the Workflow based on input. Both, although is generally easily implemented manually.

Eembeddable - both offer entire systems but are modulated so this should suite embedding into existing systems.