Announcing Zeebe 0.10.0: NodeJS Client, A Library for Easier Client Creation, Timestamps for Improved Workflow Analytics, and More

Written by Sebastian Menski on in the Releases category.

Update: On Monday, June 11, the Zeebe team released version 0.10.1 (download and changelog available here), a patch that fixes an issue with stream processing, and also released a 0.10.1 update for zbctl, the Zeebe command line interface (download and changelog available here).

The Zeebe team is pleased to announce the Zeebe 0.10.0 release, which includes:

  • A NodeJS client to make Zeebe accessible to JavaScript developers and a new library for easier creation of Zeebe clients in other programming languages

  • Improvements to the Java client based on user feedback

  • The addition of event timestamps on records to enable reporting on the duration of a workflow instance, of tasks within a workflow, and more

  • Support for topic creation in the config file and the return of default-topic

  • Compatibility with a revamped Zeebe Simple Monitor, an operations tool that provides insight into Zeebe workflows

In the rest of this post, we’ll cover release highlights in more detail and point you to resources for getting started with Zeebe.

You can download the release here, and be sure to check out the installation guide if you have any questions.

What’s New In Zeebe 0.10.0

Client Updates: New NodeJS client, improvements to the Java client, and a library to enable easier client creation

Zeebe NodeJS client is now available
The Zeebe team released a NodeJS client earlier this week, which is Zeebe’s first JavaScript-based client. The README in the GitHub repository has everything you need to get started.

libzbc: an easier way to create new Zeebe clients
Along with the NodeJS client, the team also introduced libzbc, an FFI (foreign function interface) library that makes it much easier to build new Zeebe clients. Clients in Zeebe have a lot of responsibility, and so writing a client from scratch is complex and time-consuming. libzbc is an abstraction layer over the Zeebe Go client that takes advantage of the logic already implemented in Go, greatly simplifying the process of building a new client in a different language.

To demonstrate what’s possible with libzbc, we built a (not-yet-public) prototype of a Ruby client for Zeebe in just one day. If you don’t yet see a Zeebe client offered in your preferred programming language, we encourage you to create one.

Java client improvements
Zeebe 0.10.0 also includes an updated Java client API with improvements based on user feedback. The Java client API now offers:

  • Clear command and event separation: systems that connect to Zeebe to provide monitoring and operations tools are primarily interested in events and not commands, and this change makes it easier to process events in these applications.
  • JSON (de-) serialization of records: this update makes it easier to export records from Zeebe and use them elsewhere–for example, sending messages over Apache Kafka or a similar service or getting messages into reporting systems
  • Distinction between topic subscription vs. job worker: this change clears up API confusion reported by users by clearly identifying entities that actively participate in a job vs. those that only listen to events. Read more here.

Event Timestamps For Insight Into Workflow & Task Duration (And Other Helpful Reporting)

Every event in a Zeebe topic now includes a timestamp representing when the event was written to Zeebe. This timestamp makes it possible to visualize a timeline of events and to understand the duration of a workflow instance or a specific task in a workflow.

The feature is a step toward users being able to create reports based on Zeebe workflows in a tool such as Optimize, which supports, among other reports, visual representations of workflows with heatmaps showing which tasks took longer than others.

A Workflow Heatmap In Camunda Optimize

Read more in the GitHub issue.

Create and Configure Topics In Config File and the Return of default-topic for an Improved New User Experience

Users are now able to create new topics with configuration settings in the zeebe.cfg.toml file:

[[topics]]
name = "development"
partitions = 3
replicationFactor = 1

[[topics]]
name = "production"
partitions = 16
replicationFactor = 3

In addition, default-topic has been revived and is included in the Zeebe distribution’s config file (a user can simply remove it before startup if it’s not needed). This provides an easier getting started experience for new users, and this update was motivated by a conversation in the user forum.

Read more in the GitHub issue.

Revamp of Zeebe Simple Monitor for Visibility into Zeebe Workflows

Zeebe Simple Monitor is a lightweight application for monitoring Zeebe workflows (similar to Camunda Cockpit if you’re familiar with Camunda BPM). As a community project, Simple Monitor has a release cycle separate from Zeebe, and a new version of Simple Monitor that’s compatible with Zeebe 0.10.0 was released this week with the following features:

  • Support for multiple topics, including the ability to deploy a workflow to a topic, receive events from all topics, and create a new topic
  • Ad hoc search for records
  • Visualization of the current topology
  • Data persistence in MongoDB (rather than H2)

Monitor Zeebe Workflows Using Zeebe Simple Monitor

For more detail, you can take a look at the changelogs:

Get Started With Zeebe

Ready to get started? The following links will help you get going with Zeebe.

If you’d like to stay on top of what’s new with Zeebe, you can subscribe to our newsletter, follow us on Twitter, or subscribe to the Zeebe blog via RSS.