Announcing Zeebe 0.11.0: Snapshot Replication for Fast Failover, Updated Default Mapping Behavior, and Easy Access to Deployment Events

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

  • Snapshot replication for fast failover
  • An updated default output mapping for task and workflow instance payloads for simpler workflow creation
  • Easier access to deployment events, including a list of all workflows deployed to Zeebe
  • Accessing and setting the payload of workflow or job as generic map or POJO

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 about getting started.

What’s New In Zeebe 0.11.0

Snapshot Replication For Fast Failover

(Note: if you’re new to Zeebe’s leader / follower concepts, we recommend you take a look at this section of the documentation, which provides background info for this feature.)

We’ve already written a bit about the mechanisms that make Zeebe fault tolerant, and the new snapshot replication feature speeds up Zeebe’s startup time after a failure. Snapshots make it possible for brokers in Zeebe to recover state more efficiently and without reprocessing all events stored in a log.

Prior to Zeebe 0.11.0, only leader brokers have access to snapshots. That means that when a follower broker becomes a leader, it must reprocess all events in a log to build up internal state. In some cases, this rebuilding of state can take a significant amount of time.

Snapshots are now replicated to followers (along with the log itself) so that follower brokers can more quickly become leaders and resume processing.

See more in this issue.

Changing Default Output Mapping from “replace” to “merge”

This new behavior, inspired by user feedback in the forum, seeks to make workflow design simpler for users. When merging a task payload with a workflow instance payload, the Zeebe now uses a top-level merge by default instead of replacement.

This is best described with an example:

Zeebe Output Mapping Behavior, Before and After

This output behavior is configurable. A user can also specify:

  • OVERWRITE, which will overwrite the workflow instance payload with the task payload
  • NONE, which means that the task worker doesn’t produce any output, and the task result would be dropped

Deployment events (e.g. a list of all workflows deployed to Zeebe) available via a “deployment subscription”

This feature supports a case where, for example, a user wants to display all workflows currently deployed to Zeebe in an external application. Prior to 0.11.0, this required polling a workflow repository API to fetch all workflows. There were some problems with this approach:

  • It introduced unnecessary overhead on both client and broker because it fetched all workflows over and over
  • If the number of deployed workflows exceeded the maximum size of a response message, the expected behavior was unclear

It’s now possible to subscribe to Zeebe’s internal-topic, and this subscription will receive all deployed workflows.

ZeebeClient.newClient()
   .newManagementSubscription()
   .name("deployment-subscription")
   .deploymentEventHandler(System.out::println)
   .open();

This will print out all deployment events for all topics.

Learn more in this issue.

Access and set payload of workflow or job as generic map or POJO

This feature allows users to easily modify the payload without handling the (de)serialization themselves. Previously, payloads were only available as a JSON string.

ZeebeClient.newClient().topicClient().jobClient()
 .newWorker()
 .jobType("payment-service")
 .handler((jobClient, job) -> {
   // Access payload as generic map
   final Map<String, Object> payload = job.getPayloadAsMap();
   // or deserialize it to a POJO
   // final PayloadObject payload = job.getPayloadAsType(PayloadObject.class);

   payload.put("totalPrice", 46.50);

   jobClient.newCompleteCommand(job)
     .payload(payload)
     .send()
     .join();
 })
 .open();

Get Started With Zeebe

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

If you have questions about Zeebe, visit the Community page to learn how to contact us via the forum or our public Slack channels.

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.

  • Camunda Platform 8.1 Released – What’s New

    We’re extremely excited to announce the release of Camunda Platform 8.1.  In this post, we will go into the highlights of this release including Web Modeler, Connectors, Zeebe, Operate, Optimize, and more. Here’s the highlights of what’s included in this release: Easier Installation and maintenance for Camunda Platform Self-managed Hot backups for Self-Managed Token-Based authentication Modeler updates Process Templates FEEL Expression Editor Inline Annotations Changes to Camunda forms Connectors updates Workflow engine updates Operate updates Optimize updates Let’s get started! Easier installation and maintenance for Camunda Platform Self-Managed Improved Guides and Support for OpenShift and Amazon EKS (AWS) With this release, we are introducing official support for deploying and running Camunda Platform 8 Self-Managed on OpenShift and Amazon EKS (AWS)....

    Read more
  • Camunda Platform 7.18 Released – What’s New

    We’re extremely excited to announce the release of Camunda Platform 7.18 Here are some of the highlights: Cockpit: Improved instance selection to avoid unintended batch operations Cockpit: Easier navigation of high batch operation volumes MDC logging features Camunda Forms in Tasklist: Populate select options via process data Exception error codes Filter and order tasks by last updated WebSphere Liberty New and retired supported environments You can download Camunda Platform or run it with Docker. For a complete list of the changes, please check out the release notes. For patched security vulnerabilities, see our security notices. If you want to dig deeper, check out the source code on GitHub. Cockpit: Improved instance selection to avoid unintended batch operations Previously, when performing...

    Read more
  • Increase your resilience with new regions in...

    We’re excited to announce new regions for Camunda Platform 8 SaaS that further strengthen the resilience, performance, and data requirements for our SaaS customers. Enterprise customers can now choose to create their clusters in a number of regions including Europe West, US Central, US East, and the most recent addition, Australia South East. This provides multiple benefits, such as increasing availability, allowing to set up fail-safes, adhering to regulatory requirements for regional data storage, and reduced latency due to closer physical proximity. Resilience and redundancy in technology are important for all modern organizations and are top of mind for many. Across industries, organizations need a solution that scales effectively and is resilient to provide a good base for process orchestration....

    Read more

Ready to get started?

Still have questions?