MAY 2, 2017

When we talk about the open source Flowable BPM, it’s important to bear in mind that there are two versions: 5 and 6.

Flowable 5 is based on a fork of the open source Activiti 5 and can literally be dropped in as an alternative (with more bug fixes and some additional functionality). We will continue supporting Flowable 5, but most of the future features are going to happen on the Flowable 6 line that we released earlier this year.

Flowable 6 is the next generation engine that brings a number of significant changes in its core.  One major enhancement is the introduction of an abstract data layer, which allows you to use relational or other databases to store process state.  You can even mix the data storage between a relational database and a NoSQL database, if you want.  The other key change is in process execution, which will allow us to innovate in BPM for years to come.

The way processes are executed in Flowable 5 (as for other engines with the same origin) is that BPMN is mapped to a Process Virtual Machine (PVM).  You can think of this a bit like Java code that’s converted to bytecode to run on a JVM.  In Flowable 5, one BPMN operation might get mapped to multiple PVM operations.  The problem is, over time, these PVM operations have had to deal with more and more exceptions and use cases that mean they are no longer clean, isolated and efficient.

Flowable 6 introduces a clean and predictable execution model.  There’s a one-to-one relationship between BPMN and the execution operations, so all the odd bits of code scattered around the PVM operations are no longer needed.  Now the model is much more understandable with clear meaning, which means less chance of bugs being introduced with new features, as well as being easier to fix.  More excitingly, it is now possible to manipulate running processes, such as easily changing the state of a process.  We can even inject new process elements into a single running process – imagine you’re part way through a complex on-boarding process for a client, when you come across a new piece of information that means you really want to include a credit check on an associate – with Flowable 6 you could inject the additional credit check process into your current one and continue as if that was how the process was designed.  And, that exceptional process is fully auditable and even re-usable. It may not even need to be a human that decides to inject the process, it could be some external risk assessment system or machine learning algorithm that decides it should be inserted.

The new Flowable 6 architecture will allow us to introduce new dynamic capabilities as we move forward, and our customers will guide us on what we should be doing to best exploit this for their business challenges.  Meantime, we’ll continue to support and maintain Flowable 5 for years to come, because some want an instant, painless switch to a supported open source BPM library, but aren’t ready to move to Flowable 6 immediately.  For any new projects, you should really start with Flowable 6 to gain its benefits now, and at the same time you’ll be working with the future.

_R7A0588-Paul Homes-Higgin_web

Paul Holmes-Higgin

Fellow

Co-founder of Flowable and a long-time Open Source advocate, that he believes still has an important role to play in making innovation more widely available.

Share this Blog post
iStock-1125550535
Engineering | JULY 3, 2024
Using AI with Flowable

In the past few months, this has culminated into a clear understanding of the strengths and weaknesses of the Generative AI (GenAI) technology; and where it makes sense to integrate with it and – perhaps more important – where it doesn’t make sense.

pexels-google-deepmind-18069697
Engineering | FEBRUARY 19, 2024
The Value of AI in Modeling

As AI gains prominence as a pivotal technology and enterprises increasingly seek to leverage its capabilities, we are actively exploring diverse avenues for integrating AI into process automation.

pixabay_egg-583163_1920_stevepb
Engineering | OCTOBER 3, 2023
Low-code, High Impact: Flowable & CMMN for Complex Use Cases

The key to managing complexity is to combine different and multiple tools leads to better, faster, and more maintainable solutions. For example, combining BPMN with CMMN.