Automatiko 0.17.0 released

Version your workflows to version your apis

Posted by Automatiko team on June 30, 2022 · 5 mins read

We are pleased to announce a new release of Automatiko - 0.17.0


  • Versioned workflows routing
  • Reuse of user task forms
  • Expression aware user task description
  • Control the key of Kafka record with expression
  • Automatiko modeller new version

Versioned workflows routing

Workflow versioning is very powerful feature that allows to automatically version the service api. With that users can easily provide new features by building new versions of workflows. Although this exposes the version to the consumers of the service. In many cases this is desired behavior but there are also cases when service provider would like to automatically start new instances on the latest available version but keep the existing instances on the versions there were started with.

0.17.0 release introduces additional configuration option (disabled by default) that allow to route requests to latest version. The mechanism behind this routing is to

  • route requests that do not target individual instances to latest version
  • route requests that target individual instances to the version they belong to
With this consumers of the service can use latest for new instances and continue on existing versions for instances that are already active. To enable that add quarkus.automatiko.service-route-to-latest=true inside the

Have a look at more details about versioning in Automatiko documentation.

Reuse of user task forms

User task forms provide an easy way to interact with instances by human actors. There might be many user tasks in given workflow (especially when covering "Human centric" use case). In some situations there might be different tasks defined but they have the same inputs and outputs and by that could take advantage of reusing the form instead of duplicating it.

Forms are implemented based on templates and by default are looked up in following order

  • based on FormName property of the user task
  • based on TaskName property of the user task
  • based on processId.TaskName
The use of FormName allows to reuse existing forms for different tasks.

Reuse of user task forms Reuse of user task forms.

Expression aware user task description

User tasks as the name implies are targeting human actors and by that should provide as descriptive information as possible. User task descriptions that allow to use expressions, provide an option to define something that will be easily understandable and come with the context the task is in. For example "Approval for order with number 12345 created by John Doe"

This release comes with support for user task descriptions and expose that information via service apis so building user interfaces can benefit from it.

Control the key of Kafka record with expression

When using message events in the workflow definition to publish Kafka records the key of the record is set to the business key of the workflow instance. It is an optional property of the instance so it might not be set resulting in not setting Kafka record key at all. On the other hand there might be situation where the key of the published record should be different than the business key of the workflow instance.

To address this gap, 0.17.0 comes with possibility to use keyExpression custom attribute on the message event to instruct the runtime what key should be set to when publishing the event. Note as well that since it is an expression you can also use automatiko functions to make more advanced keys (those that would require some sort of calculation, generation or concatenation etc).

Kafka keyExpression on message events Kafka keyExpression on message events.

Automatiko modeller new version

Automatiko modeller (an eclipse plugin) has been improved to better handle versioning, provide out of the box defaults to make modelling of workflows easier. All users are encouraged to upgrade to this version especially to be able to support latest versions of Eclipse IDE.

Download latest version of the Automatiko modeller.

Photographs by Unsplash.