Wednesday, July 23, 2014

Activiti 5.16 released

I'm happy to announce the immediate availability of Activiti 5.16. This release contains the following highlights:
  • Added Spring boot support and more Spring annotation support in general (thanks to Josh Long)
  • Refactoring of the job executor to simplify its logic and prevent possible long wait times.
  • Added new event log table that stores process engine events when wanted, by default this is switched off.
  • Introduced asynchronous parallel and inclusive gateways to prevent optimistic locking exceptions (http://bpmn20inaction.blogspot.nl/2014/07/activiti-516-feature-preview.html)
  • Introduction of Crystalball, which is an experimental new project that allows you to replay and simulate process instances (Thanks to Martin)
  • Upgraded to Spring 4.x and Restlet 2.2.x
  • Various fixes and improvements
Thanks to community members Martin Grofcik, Henry Yan and Lori Small for their contributions to the Activiti project in the last months. Enjoy the new release!

Wednesday, July 16, 2014

Activiti 5.16 feature preview - async parallel/inclusive gateways

This article will go into details about one of the new features of the upcoming Activiti 5.16 release, parallel behaviour. In 2012 I've written a blog post about this and still a lot of people refer to it in forum posts or emails. This blog post describes how to solve possible optimistic locking exceptions when working with parallel and inclusive gateways in Activiti, using Apache Camel.

It's not really elegant to force using another framework to solve a potential issue with process execution, even if it's a great framework like Apache Camel. That's why we've implemented an easier solution in Activiti, that will be part of version 5.16. Let's describe the potential issue shortly, before showing the new feature/solution.

When you have two long running tasks you want to run in parallel, Activiti provides asynchronous service tasks to make this possible. With the default synchronous service tasks, Activiti would wait until task 1 is completed and then execute task 2. By making the service tasks asynchronous both tasks can be executed in parallel. The optimistic locking issue will appear when task 1 and 2 are completed at almost the same time. Both tasks will enter the second parallel join gateway and will try to update the current execution. Only 1 task will be successful in performing this action and the second task will get a optimistic locking exception.

With Activiti 5.16 it will be possible to make the second parallel join gateway (and also an inclusive gateway if you're using that gateway type) asynchronous as well. When you define the parallel gateway as an asynchronous and exclusive gateway no optimistic locking exception will occur anymore.


<parallelGateway id="gateway2" activiti:async="true"       
    activiti:exclusive="true" />

So it's really simple now to deal with these kind of parallel behaviour issues and no Apache Camel route is needed anymore to solve it. 

More good stuff is coming in Activiti 5.16. We expect to release it next week.

Tuesday, July 8, 2014

Activiti Designer 5.15.0 released

Hi all,

We released a new version of the Activiti Designer Eclipse plugin (5.15.0). This release is a bug fix version and is available on the following URLs (as always):

http://www.activiti.org/designer/archived/activiti-designer-5.15.0.zip (archived site)
http://www.activiti.org/designer/update (update site)

Note that the 5.15.0 release includes improvements to data object support and usability in general. It also allows you to connect to the Alfresco Activiti Editor and download and upload models from and to the Editor cloud repository.

Hope you'll enjoy this new release.