Announcing Zeebe and Operate 0.26

by Zeebe & Operate Team on Jan 12 2021 in Releases.

A new release for Zeebe and Operate 0.26 is available now. You can grab the releases via the usual channels:

As usual, if you’d like to get started immediately, you can find information about it directly on the Zeebe & Operate documentation website.

It is possible to perform a rolling upgrade to Zeebe 0.26 from 0.25. For Camunda Cloud users, 0.26 is the new production version since this week, your existing clusters were already upgraded automatically.

Here are some highlights:

In the rest of this post, we’ll go into more details about the changes that the latest stable release brings.

Zeebe 0.26

Topology Response with Partition Health

Clients can request the topology of the cluster from a Zeebe broker. With 0.26, the response also contains the health status of the partitions. Developers can use this information to check the status of the cluster quickly without looking at the metrics.

Using zbctl:

./bin/zbctl --insecure status

Cluster size: 1
Partitions count: 1
Replication factor: 1
Gateway version: 0.26.0
Brokers:
  Broker 0 - 0.0.0.0:26501
    Version: 0.26.0
    Partition 1 : Leader, Healthy

Using the Java client:

final Topology topology = zeebeClient.newTopologyRequest().send().join();
    
for (BrokerInfo broker : topology.getBrokers()) {
  for (PartitionInfo partition : broker.getPartitions()) {
    final PartitionBrokerHealth health = partition.getHealth();
    // ...
  }
}

We’d like to thank @aivinog1 for his awesome contributions to this topic.

Use Memory Mapped Storage Level by Default

In previous releases, Zeebe used file channels to read its log segments. With 0.25, we exposed an experimental optional to use memory mapped log segments. We tested the mode extensively and set it now as the new default.

With the new setting, we see a considerable improvement of the workflow execution latency (3-6.5 times lower). So, the execution of one workflow instance from start to end is faster than before. Note that the latency drops when the throughput reaches the limits of the broker.

The following diagrams show the latency metrics with file channel and with memory mapped storage.

Zeebe 0.26: using file channel storage

Zeebe 0.26: using file channel storage

Zeebe 0.26: using memory mapped storage

Zeebe 0.26: using memory mapped storage

More details are available here.

The previous configuration setting zeebe.broker.data.useMmap has been deprecated and will be removed in a future version.

Omit the Job Activated Events

When a client activates a job, the broker writes a job batch command to the log stream. On processing the command, it writes a job batch event that contains the activated jobs and sends the response back to the client. In addition to the job batch event, it writes one job event with the intent ACTIVATED for each activated job.

With 0.26, we omit the job events because the job batch event contains the jobs already. As a result, the broker stores and replicates less data.

Configure the Broker Data Directory

We reconsidered the configuration of the broker’s data directory. Previously, it was configured by setting zeebe.broker.data.directories. This was confusing because the broker supported only one directory.

With 0.26, we renamed the configuration setting to zeebe.broker.data.directory. The previous setting has been deprecated and will be removed in a future version. If the new configuration isn’t set, it falls back to the previous one.

Operate 0.26

Improved User Status Feedback

In visual tools like Camunda Operate it is important for the users to receive proper status feedback on their actions. With the latest release we improved several aspects of these feedback to improve the overall user expierence.

Data loading status feedback

Operate contains many view components which show data collections, therefore it is important for the user to visually understand if the collection is empty, or if there was an error in loading the data. Operate 0.26 makes this clearly visible with the updated feedback.

Operate 0.26: Empty dashboard state

Operate 0.26: Empty dashboard state


Operate 0.26: Error dashboard state

Operate 0.26: Error dashboard state


Operate 0.26: Error instances list state

Operate 0.26: Error instances list state


Operate 0.26: Error details state

Operate 0.26: Error details state

Form input validation

In Operate’s instances list view the filters panel is essential to find the workflow instances of interest. In order to assist users on fixing invalid filter inputs, the latest release of Operate now contains tool tips for invalid form fields which contain hints for the expected inputs.

Operate 0.26: Form validation feedback for invalid date input

Operate 0.26: Form validation feedback for invalid date input

Notifications

Investigating incidents within Operate often requires users to execute actions (also known as Operations) such as editing variables, resolving incidents or cancelling instances. Since these are important interaction between the user and applications which require appropriate feedback for a pleasant user experience; Operate 0.26 has a new notification component which provides immediate feedback on user actions.

Operate 0.26: Notification that an Operation could not be created

Operate 0.26: Notification that an Operation could not be created

Infinite Scroll in Instances View

When using Zeebe it is common to have hundreds or even thousands of workflow instances running at the same time. In order to improve Operate’s instance list view user experience while also handling a vast amount of data, we have replaced the old pagination approach with a more flexible endless scroll.

Operate 0.26: Endless scroll in Operate instances list

Operate 0.26: Endless scroll in Operate instances list

Configurable Context Path

With Operate 0.26 we added the option to configure the application to be available under a different context path. This is helpful if you don’t want Operate be served under the root context path / but instead for example use /operate. You can find the corresponding configuration option in our documentation.

Zeebe Modeler 0.11

Improved UI for Input/Output

The latest Zeebe Modeler release contains a complete overhaul of the Input/Output Mapping UI, it allows the user to better define mappings and gives a clear overview of the currently defined mappings.

Zeebe Modeler 0.11: New Input/Output Mapping UI

Zeebe Modeler 0.11: New Input/Output Mapping UI

Support Propagate All Child Variables Flag

With Zeebe 0.25 we introduced a new configuration flag propagateAllChildVariables to call activities. It allows the user to specify that all variables are propagated (i.e. copied) from the called child instance to the calling parent instance. With the latest Zeebe Modeler release this configuration can be controlled in the Input/Output mapping of a Call Activity.

Zeebe Modeler 0.11: Propagate All Child Variables Setting

Zeebe Modeler 0.11: Propagate All Child Variables Setting

Documentation

Unified Camunda Cloud Documentation

From today we will offer a unified Camunda Cloud documentation, which combines the documentation of Zeebe, Operate and Camunda Cloud into a single documentation hub. Please check it out under https://docs.camunda.io and let us know what you think. The content of the old Zeebe documentation can be found under the section Product Manuals/Zeebe and likewise for Operate under Product Manuals/Operate. This new platform also allows us to provided the documentation versioned, this way users can also check the docs for older version in case needed.

Get In Touch

There are a number of ways to get in touch with the Zeebe community to ask questions and give us feedback.

We hope to hear from you!