camunda BPM 7.0 Refactors Engine And Process Administration

On August 31, camunda released camunda BPM platform 7.0 (community open source and enterprise editions), the first major release of the software since it was forked from the Activiti project in March, although there were nine community releases between the fork at the release of 7.0. I had the chance for a couple of briefings over a period following that with Daniel Meyer, the project lead, and promised that I’d actually get this post written in time for Christmas. 🙂

The 7.0 release contains a significant amount of new code, but their focus remains the same: a developer-friendly BPM platform rather than a tool positioned for use by end users or non-technical analysts. As I discussed in a recent webinar, BPMS have become model-driven application development environments, hence having a BPMS positioned explicitly for developers meets a large market segment, especially for complex core processes.

The basic tasklist and other modeler and runtime features are mostly unchanged in this version, but there are big changes to the engine and to Cockpit, the technical process monitoring/administration module. Here’s what’s new:

Cockpit:

  • Inspect/repair process instances, including retrying failed service calls.
  • Create instance variables at runtime, and update variable values.
  • Reassign human activities.
  • Send a link directly to a specific instance or view.
  • Create a business key corresponding to a line-of-business system variable, providing a fast and easy to search on LOB data.
  • Extensible via third-party plug-ins. The aim with Cockpit is to solve 80% of use cases, then allow plug-ins from consulting partners and customers to handle the remainder; they provide full instructions on how to develop a Cockpit plug-in.
  • Add tabs to the detailed views of process instance, e.g., a link to LOB or other external data.

Engine:

  • A new authorization framework (also manifesting in admin capabilities for users/groups/authorizations): this is a preview feature in 7.0, supporting only application, group, group membership authorization. In the future, this will be expanded to include process definition and instance authorization. Users can be maintained in an internal camunda database or using a direct link to LDAP.
  • A complete rewrite of the history/audit log, splitting the history and runtime databases, which is potentially a huge performance booster. Updates to the history are triggered from events on running instances, whereas previously, writing history records required querying and updating existing records for that instance. The history log can be redirected to a database that is shared by multiple process engines; since some amount of the Cockpit monitoring is done on the history database, this makes it easier to consolidate monitoring of multiple process engines if the history logs are redirected to the same database. The logs can also be written directly to an external database based on the new history event stream API. Writes to the history log are asynchronous, which also improves performance. At the time of release, they were seeing preliminary benchmarks of 10-20% performance improvement in the process engine, and a significant reduction in the runtime database index size.
  • There is some increase in the coverage of the BPMN 2.0 standard; their reference document shows  supported elements in orange with a link through on each element to the description and usage, including code snippets where appropriate. Data objects/stores are still not supported, nor are about half of the event types, but their track record is similar to most vendors in this regard.

Version 7.0 is all open source, but a consolidation release (7.1) is already in alpha and will contain some proprietary administration features in Cockpit not available in the open source version: bulk edit/restart of instances, complex search/filter across instances from different process definitions, and a process-level authorizations UI (although the authorization structure will be built into the common engine). camunda is pretty open about their development, as you might expect from an open source company; you can even read some quite technical discussions about design decisions such as a new Activity Instance Execution Model have been made in the process engine in order to improve performance.

In September, camunda released a cloud application for collaborating on process models, camunda share. This is not a full collaborative authoring environment, but a place to upload, view and discuss process models. The camunda team created it during their “ShipIt-Day”, where they are tasked with creating something awesome within 24 hours. There’s no real security, your uploaded model generates a unique URL that you can send to others, but it provides the option to anonymize the process model by removing labels if your process contains proprietary information. A cool little side project that could let you avoid sending around PDFs of your process models for review.

camunda’s business model is in providing and supporting the enterprise edition of the software, which includes some proprietary functions in Cockpit but is otherwise identical to the community open source edition, plus in consulting and training services to help you get started with camunda BPM. They provide a great deal of the effort behind the community edition, while encouraging and supporting platform extensions such as fluent testing, PHP developer support and enterprise integration via Apache Camel.

camunda BPM 7.0

Stick A (Open Source) Fork In It: camunda BPM Splits From Activiti

At the end of 2012, I had a few hints that things at Alfresco’s Activiti BPM group was undergoing some amount of transition: Tom Baeyens, the original architect and developer of Activiti (now CEO of the Effektif cloud BPM startup announced last week), was no longer leading the Activiti project and had decided to leave Alfresco after less than three years; and camunda, one of the biggest Activiti contributors (besides Alfresco) as well as a major implementation consulting partner, was making noises that Activiti might be too tightly tied to Alfresco’s requirements for document-centric workflow rather than the more general BPM platform that Activiti started as. I’m not in a position to judge how Alfresco was controlling the direction and release cycle of Activiti, who was making the biggest contribution to the open source efforts, or what was said behind closed doors, but obviously things reached a breaking point, and this week camunda announced that they are forking a new open source project from Activiti, to be known as camunda BPM.

This is big news in the world of open source BPM. There are a few players already – Activiti, BonitaSoft, jBPM and Processmaker, to name a few – and it’s not clear that there’s enough demand for open source BPM software to warrant another entrant. Also, there has to be some hard feelings between the parties here, and this is a small community where you can’t really afford to make enemies, because you never know who you’re going to end up working with in years to come. This parting of the ways is described as “sad” by both camunda in their announcement post and by Joram Barrez (current Activiti lead core developer) in his post, and puts Activiti and camunda in direct competition for both existing Activiti users and future business. Signavio, whose process modeler is deeply integrated with camunda BPM, issued a press release stating that the camunda BPM fork will be good for Signavio customers, and including a nice quote from Tom Baeyens; keep in mind that Signavio just provided the funding for Baeyens’ new startup. It’s like the Peyton Place of BPM.

Leaving the personal (and personnel) aspects aside, camunda BPM is offering some significant additional capabilities beyond what is available in Activiti, mostly through open-sourcing their previously proprietary Activiti add-ons. I had a briefing a couple of weeks ago with Jakob Freund, camunda’s CEO, to get caught up on what they’re doing. camunda is about 20 people now, founded 4-1/2 years ago and completely self-funded. That makes them a bit small for launching an enterprise software product – including the implementation and support aspects – but also not driven to unreasonable growth since they have no external investors to please. Having once grown a consulting company to about twice that size without external funding, I can understand the advantages of maintaining the organic growth: control to pick the projects and products that you want to build, and to hand-pick a great team.

camunda BPM, as with Activiti (and jBPM, for that matter) are not claiming to be zero-code BPM suites – some would argue that even those claiming to be, aren’t – but are BPM engines and capabilities intended to be embedded within line-of-business enterprise applications. They see the zero-coding market as being general tooling for non-strategic processes, and likely served equally well or better by outsourcing or cloud solutions (Effektif, anyone?); instead, camunda targets situations where IT is a competitive differentiator, and BPM is just part of the functionality within a larger application. That doesn’t mean that there’s nothing for the non-technical business analyst here: BPMN is used as a bridge for business-IT alignment, and camunda is bringing their previously proprietary BPMN round-tripping capabilities into the new open source project. Their BPMN plugin for Eclipse provides an easy-to-use modeler for business analysts, or round-tripping with Signavio, Adonis and other modeling tools; camunda blogged back in June 2012 about how to integrate several different BPMN modelers with camunda BPM, although they have a definite preference for Signavio.

camunda BPM is a complete open source BPM stack under an Apache License (except for Eclipse, the framework for the designer/developer UI, which uses the Eclipse Public License). The Community (open source) edition will always be the most up-to-date edition – note that some commercial open source vendors relegate their community edition to being a version behind the commercial edition in order to drive revenue – with the Enterprise (commercial) edition lagging slightly to undergo further testing and integrations. The only capabilities available exclusively in the Enterprise edition are WebSphere Application Server (WAS) integration and Cockpit Pro, a monitoring/administration tool, although there is a Cockpit Light capability in the Community edition. You can see a Community-Enterprise feature comparison here, and a more complete list here. Unless you’re tied to WAS from the start, or need quite a bit of support, the Community edition is likely enough to get you up and running initially, allowing for an easier transition from open source to commercial.

However, the question is not really whether camunda has some great contributions to make to the Activiti code base (they do), but whether they can sustain and build an open source fork of Activiti. They have some good people internally to provide vision – Daniel Meyer for the core process engine architecture, Bernd Rücker for a technical consulting/product management view, Jakob Freund for the business aspects of BPM – and a development team experienced with the Activiti and camunda code bases. They have showed significant leadership in the Activiti open source community and development, so are likely capable of running a camunda BPM open source community, but need to make sure that they dedicate enough resource to it to keep it vital. There is a German camunda community already, but that’s not the same as an open source community, and also is only in German, so they have some work to do there.

And then there’s the existing Activiti and camunda users. Existing camunda customers probably won’t be freaked out about the fork since the contributions important to them were being made by camunda anyway, but existing Activiti users (and prospects) aren’t just going to fall into camunda’s lap: they might be weighing the additional functionality against the bigger company, stable brand and existing community behind Activiti. Given some of the new UI features being rolled into Activiti from the Alfresco team, it’s fair to say that Alfresco will continue to innovate Activiti, and attempt to maintain their solid standing in the open source BPM market. There’s likely a small window for existing Acitiviti users to shift to camunda BPM if they want to: right now, the engine is identical and the migration will be trivial, but I expect that within six months, both sides will make enough changes to their respective projects that it will become a more significant effort. In other words, if you’re on Activiti or camunda now and are thinking of switching, do it now.

camunda could be ruffling a few feathers by declaring an open source fork rather than just rolling their proprietary offerings into the Activiti project; they might have been able to become a stronger influencer within the project by doing that, counteracting any (perceived) document-centric influence from Alfresco. Again, I’m not internal to either of the companies nor part of the Activiti open source community, so that’s just speculation.

Meanwhile, Alfresco remains officially silent on the whole business. Given that they had advance warning about this, that’s a pretty serious PR mistake.