Automatiko 0.12.0 released

Serverless Workflow and messaging enhancements

Posted by Automatiko team on February 02, 2022 · 3 mins read

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

Highlights

  • HTTP based messaging support
  • Serverless Workflow support reworked
  • CloudEvent format for messages
  • Filter expression for messages

HTTP based messaging support

Additional messaging provider has been added to Automatiko that allows to use HTTP endpoints as source and target to receive and publish messages. It works in the same way as any other messaging connector in Automatiko and opens up a simple integration with HTTP based services. It supports both incoming and outgoing messages. All required details can be found in Automatiko documentation.

Serverless Workflow support reworked

Automatiko supported Serverless Workflow specification from the very beginning but it was rather basic support. It ended at 0.6 version of the specification. With 0.12.0 release it has been completely reworked to enable implementation of majority or all features of the specification. This means that now it supports 0.8 version of the spec and latest version of the SDK.

Serverless Workflow support in Automatiko covers following states

  • Inject
  • Operation (with REST or Expression actions)
  • Event
  • Switch (data and event conditions)
  • Sleep
  • Callback
  • Parallel

Please note that not all features of states are yet supported and more detailed documentation about support will be published soon.

At the same time, Automatiko comes with really simple way to get you started with Serverless Workflows by following 3 simple steps

  • Create directory e.g. workflows
  • Create workflow definition file e.g. hello.sw.json
  • Start Automatiko development container with the folder mounted
    docker run -v $(pwd):/app/src/main/resources/workflows -p 8080:8080 -it --rm automatiko/development-container:latest
And that's it! You can execute your workflows without anything else installed on your environment.

Here is a short video showing this in action

Have a look at Getting started guide for more information about Serverless Workflow use in Automatiko.

CloudEvent format for messages

Cloud Event specification becomes more and more popular as a format of the data being exchanged between systems and services. Automatiko comes with out of the box support for it - including specific bindings for various protocols:

  • HTTP
  • Apache Kafka
  • AMQP
  • JMS
To configure use of cloud events for messages, application property quarkus.automatiko.messaging.as-cloudevents must be set to true. It is set by default for Serverless Workflow based workflow definitions.

Filter expression for messages

Working with messaging infrastucture sometimes requires systems and services to filter out or ignore certains messages. To make it simple, Automatiko introduces a filtering mechanism based on expressions. This can be provided to the runtime via custom attribute of the message event (filterExpression) and it is expected to be a valid expression or function. Such expression can reference following variables:

  • eventData - the payload of the message already converted to actual object
  • message - raw message object that is specific to messaging connector used e.g. Kafka, MQTT etc
filterExpression must return boolean value where true means the message will be processed and false means the message will be ignored (but acknowledged).

Photographs by Unsplash.