Cafienne Engine Release 1.1.28
Model driven fault handling
The CMMN 1.1 specification provides for an excellent language to model case proceedings.
This includes very natural ways of starting, stopping, suspending and resuming tasks - even to the extent of handling failures.
The unfortunate thing is that influencing this from a modeling perspective is limited to starting and stopping tasks.
With this release of Cafienne, the modeling is extended for dealing with failure situations in a more intuitive manner.
Furthermore this release contains fixes for dealing with security and performance challenges.
A detailed description of this functionality can be found in CMMN Fault Handling Extensions.
Improved SQL Server performance
Microsoft SQL Server is a well known and well established database in the market. It can also be configured as a persistence layer for the Cafienne event journal.
The JDBC drivers of Microsoft have a somewhat peculiar style of converting Java Unicode strings to varchar and nvarchar database columns. This leads to full table scans during the insertion of new events to the journal, which drastically slows down the system when it grows.
In this release, the database schema of SQL server for storing events is adjusted to only contain varchar columns, and no more nvarchar columns.
Furthermore it is highly recommended to adjust the SQL Server connection string for the event journal as described in the configuration page.
More dynamic Human Tasks
Cafienne Engine treats Human Tasks as "thin" as possible.
The default test user interface that ships with the getting-started
environment makes use of JSON Schema for rendering task contents.
The task definition can hold this schema in a custom property called task-model
. The content of the task-model is treated as a string by the engine, that is simply passed through.
From this release onwards, the task model can be dynamically adapted based on SPEL expressions detected inside the task-model string, in a manner similar to the HTTP call definitions.
Housekeeping
This release holds a few dependency updates resolving security issues.
Furthermore internal refactoring took place to reduce and simplify the engine code, making it better maintainable.
Also some deeper issues have been found & fixed.