Automatiko 0.32.0 released

Even more messaging - RabbitMQ, Apache Pulsar

Posted by Automatiko team on September 30, 2023 · 3 mins read

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

Highlights

  • Support for Apache Pulsar for messaging
  • Support for RabbitMQ for messaging
  • Configurable acknowledge mode for messaging
  • Migrated to OpenTelemetry instead of OpenTracing

Support for Apache Pulsar for messaging

Apache Pulsar is becoming more and more common in software development projects nowadays. More and more systems relies on it so Automatiko provides support for it as well. It comes with similar capabilities as Apache Kafka meaning there is a notion of "record" key and value that can be pushed or consumed from within workflows.

Automatiko fully abstracts the details of the messaging platform and allows to build message integration in completely agnostic way.

To make use of this connector it is as simple as adding dependency to the project and work on messaging in the same way as for all other connectors in Automatiko.


<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-smallrye-reactive-messaging-pulsar</artifactId>
</dependency>
  
Apache Pulsar connector project dependency

A fully running sample project can be found here.

More information about Apache Pulsar connector can be found in Automatiko documentation.

Support for RabbitMQ for messaging

RabbitMQ support was partially provided by AMQP connector but it required to run RabbitMQ wth AMQP plugin enabled. And that did not provide all RabbitMQ features. 0.32.0 provides dedicated RabbitMQ connector to natively integrate with RabbitMQ brokers and provide feature rich capability.

To make use of this connector it is as simple as adding dependency to the project and work on messaging in the same way as for all other connectors in Automatiko.


<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-smallrye-reactive-messaging-rabbitmq</artifactId>
</dependency>
  
RabbitMQ connector project dependency

A fully running sample project can be found here.

More information about RabbitMQ connector can be found in Automatiko documentation.

Configurable acknowledge mode for messaging

Automatiko relies on Reactive Messaging to provide support for intergration with other systems. One of core concepts there is acknowledgement - this is essentially way of informing the message broker about message being properly consumed and as such can be considered as completed - no need to perform redelivery.

With 0.32.0 release, there is an easy way to control it from within workflow definition. It can be set via custom attribute named ackMode on the message event or via dedicated ackMode method in Java DSL. It supports following modes:

  • post - the acknowledgement of the incoming message is executed once the produced message is acknowledged.
  • pre - the acknowledgement of the incoming message is executed before the message is processed by the method.
  • manual - the acknowledgement is done by the user.
  • none - No acknowledgment is performed, neither manually or automatically.

Migrated to OpenTelemetry instead of OpenTracing

Until this release Automatiko was relying on OpenTracing to provide capabilities around tracing. This has been sort of deprecated while ago and is not being actively developed any more. OpenTelemetry is the future and by that Automatiko is moving towards it as well.

Photographs by Unsplash.