edorasware-flowable-version-5-and-6-1-e1494329598896

Engineering

The difference between Flowable v5 and v6

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
shutterstock_2450383491
Engineering |
BPMN is dead, long live BPMN

Tools like ChatGPT can handle a variety of business tasks, automating nearly everything. And it’s true, GenAI really can do a wide range of tasks that humans do currently. Why not let business users work directly with AI then? And what about Agentic AI?

Engineering |
Measuring model complexity – Part 3: Introducing Complexity Analyzer

In this post, we continue our exploration of workflow complexity - learn how key metrics like activity count and control flow reveal natural groupings of models, making it easier to identify and improve overly complex designs.

Engineering |
Measuring model complexity – Part 2: Putting theory into practice

In this post, we continue our exploration of workflow complexity - learn how key metrics like activity count and control flow reveal natural groupings of models, making it easier to identify and improve overly complex designs.