jBPM vs Activiti: which to choose?

This tutorial has been written for an old version of jBPM which is now deprecated.

If you want to get started quickly with jBPM, we recommend the following quickstarts:

This is an update to my earlier article which was written in 2011 when jBPM 5 was still not available in its final release. We will try to compare the two process engines showing, besides the similarities, also the key differences between them.

jBPM€”is an open source process engine that initially (release 3.x) supported a custom language (named jPDL) to describe business processes. In the next release (4.x) jBPM offered both support for jPDL and the standard BPMN 2.0 which is the standard for business process modelling. The release 4.x of jBPM was never included into RedHat list of supported products and so was not clearly the choice for mission critical project.

The next version  5.x  of jBPM supports  BPMN   2.0, and the project  has  merged  with  the  JBoss  Drools  project  (an  open  source  business-rule  management  framework)  and  replaced  Drools  Flow  as  the  rule  flowlanguage for the Drools framework.

The key features of jBPM 5 are:  

  • Native BPMN2 execution
  • Highly configurable, embeddable, lightweight process engine using a generic process engine (PVM) underneath
  • Domain-specific processes and rule / event integration via the Drools Rule engine and Drools Flow workflow
  • Independent, human tasks service (using WS-HT)
  • Web tooling for things like BPMN2 process creation, deployment, management, reporting (with BIRT) and human tasks
  • Migration capabilities from jBPM 3 and 4 (jPDL 3, 4 to BPMN2)

Activiti, like jBPM, is a business process framework designed around the concept of a state machine. Backed by Alfresco company, Activiti has also the collaboration of many talented people from SpringSource as well.

Some differences do exist, in particular:

  • Activiti has native Spring support which allows using Spring Beans in your process and in data persistence (JPA) as well.
  • Activiti has no native rule engine support but supports a basic integration with Drools to support the business Rule Task
  • Activiti is a bit more friendly for Java developers providing a rich set of BPMN extensions to decorate the process
  • Provides an advanced Web interface (Activiti Explorer) which can be used to start/manage processes and ad hoc task and forms support. 

So, in terms of comparison, we can argue that Activiti looks like the logical continuation of jBPM 3(and in fact was developer by the same jBPM 3 guys T. Baeyens, J. Barrez). It has a lower learning curve also due to a very well done documentation, including a quick start tutorial. Activiti platform is completely dedicated to process and workflow management and has some integration support with Rules systems (Drools Expert) and enterprise integration capabilities (Apache Camel and Mule ESB modules).

On the other hand, jBPM 5 has a native built-in business Rules engine therefore, the process and workflow management and rule management capabilities are tightly integrated. In the latest (5.3) release the Eclipse editor has improved a lot its BPMN 2.0 process designer capabilities and a first release of the form editor has been released.