We just released Nuxeo Platform 5.5. This includes some internal changes in the way we handle tasks. jBPM is still the main workflow engine for the Platform, but we're preparing to make changes in that respect.
Becoming Independent from jBPM
I'm saying "becoming" independent because of course we are not stopping jBPM support. It just won't be the default task/workflows provider in future versions of DM.
So now that the first question is answered, let's move to the second one, which is why?
The main reason is that even if jBPM is very powerful, it does not provide an easy way to make adaptive workflows.
Unfortunately, in the real world, when it comes to projects you need a lot of flexibility.
You can define a global process, but users and the administrator need to be be able to change the workflow.
So even if the jBPM toolbox is great, it mainly targets Java Developers and it's clearly not suited for end users and even administrators.
That's the reason why we want to make Content Routing the default workflow engine of the Nuxeo Platform in our upcoming releases.
In order to prepare for this migration, we want the Nuxeo services to be as independent as possible from jBPM, so that the switch to Content Routing will be painless.
So here comes the new task Service.
The Task Service
With the 5.5 release we introduced a way to manage Tasks outside of any jBPM process. We've added a document based task service focused on simplicity and flexibility. Simplicity because you don't have to know many different concepts. If you are a Nuxeo developer or studio user, you are familiar with documents and content automation. This is all you need to know to create a task.
To be fair this capability has existed since 5.3.2 with the Workflow.CreateTask operation. But this was relying on the jBPM taskinstance api and now it's relying on the document task. It means that tasks are now stored in VCS.
Migration should be 100% transparent:
- the Task Operations have not changed
- REST APIs are maintained
- Tasks created in jBPM and not directly associated to a process will be automatically migrated upon first access
- jBPM Tasks are still accessible via the new TaskService
The only part of Nuxeo Platform 5.5 still using jBPM is the Workflow. It's a first step toward the integration of Content Routing as the default Workflow engine in Nuxeo, and we will surely let you know about the progress of this project. At this point we will gain true flexibility. As workflows will be based on content routing and content automation, you will be able to redefine or modify them easily at runtime. This has already been put in practice with Nuxeo's Case Management Framework. So if you're curious, give it a try and test it out now.