Announcing Zeebe 0.22 and Operate 1.2 (Plus A Webinar!)

by Mike Winters on Jan 17 2020 in Releases.

Happy New Year, Zeebots!

We’re excited to kick off 2020 with the release of Zeebe 0.22 and Operate 1.2.

These are the second minor Zeebe and Operate releases since going production ready in July 2019, and our dev team has made significant progress in the past quarter.

If you’d like to get started right away, please refer to the Zeebe docs for instructions on how to download a release.

Oh, and did we mention our New Year’s resolution? Webinars. More Zeebe webinars.

And so we invite you to join us on Wednesday, January 22 at 5pm Central European Time / 11am US Eastern Standard Time for a webinar with Zeebe developer advocates Josh Wulf and Mauricio Salatino and Camunda CTO Daniel Meyer.

You can register for the webinar here.

In the rest of the post, we’ll highlight what’s new since the October 2019 release for Zeebe and Operate, and we’ll also cover other important project updates. If you’ve been following along with our alpha release blog posts, many of the capabilities discussed below will be familiar to you–but we do have some new developments to share, as well.

What’s New in Zeebe 0.22

New BPMN Support

Call Activity: The call activity–or “reusable subprocess”–makes it possible to invoke another workflow as part of a process. The call activity is similar to an embedded subprocess, but the workflow being invoked is externalized (as in, it’s a separate BPMN file) and could be invoked by a range of different workflows.

Learn more about the call activity in Zeebe in the documentation.

The Call Activity is now supported in Zeebe. Here's an example.

Event Subprocesses: Zeebe now supports message and timer event subprocesses. In short, an event subprocess is a subprocess that is triggered by an event. It can be added globally to the process or locally inside an embedded subprocess. Like a boundary event, the event subprocess can be interrupting or non-interrupting (indicated in BPMN by a solid or dashed border of the start event).

The docs provide a detailed overview of event subprocesses.

Let’s also review a sample use case based on our typical e-commerce order fulfillment process.

Imagine that some items in a customer’s order aren’t always immediately available, which would lead to the shipment being delayed. When we receive a notification that an item is delayed, we can automatically notify the customer of the delay as well.

But we don’t want to cancel the entire order simply because of the delay–and that’s why in this case we use a non-interrupting message start event. The parent process continues even as we execute the subprocess.

An event subprocess example in BPMN.

Error Event: We’ve also built the first capabilities of the error event in Zeebe, including:

Find more in the documentation here. We’ll continue to build out error event capabilities in future quarters.

Other Capabilities

Await Workflow Result: This is an exciting addition to Zeebe that’s often requested by users and was previewed by Zeebe developer advocate Josh Wulf in this blog post from October 2019.

This feature enables a use case where, for example, a workflow is started in response to a REST request, and the outcome from the workflow is sent back in the REST response.

You can learn more in the documentation.

And we included a example in an earlier blog post–check it out here: https://zeebe.io/blog/2019/11/zeebe-operate-alpha-nov-2019/#await-workflow-result-in-zeebe

Improved Support for the Message Aggregator Pattern: It’s a common use case to aggregate multiple messages in a workflow, then when a given number of messages have been correlated, to process the messages. Here’s a generic model showing the message aggregator pattern:

An example of the message aggregator pattern.

But Zeebe’s previous message correlation behavior sometimes prevented users from implementing the message aggregator pattern the way they wanted to. And so this release includes changes to better support message aggregation.

For a deeper dive into the pattern and the new ways in which Zeebe supports it, please see: https://zeebe.io/blog/2019/12/zeebe-operate-alpha-releases-dec-2019/#improved-support-for-the-message-aggregator-pattern

Scalability and Stability Improvements: The team also focused on Zeebe internals this quarter, updating core components to improve Zeebe’s stability when scaling horizontally. While these aren’t changes that users would interact with directly, they certainly contribute to Zeebe’s overall usability.

What’s New in Operate 1.2

The past quarter’s Operate work covered everything from performance benchmarking and optimizations, to incremental yet impactful usability improvements, to reworking core capabilities of the product. Here are a few of the highlights.

Rework of Batch Operations: Batch operations (in other words, the ability to update many workflow instances at once) is one of Operate’s key capabilities, and early user feedback revealed many potential areas of improvement. This quarter, the Operate team developed a new UX concept for batch operations, which will be implemented in the upcoming Operate 1.3 release.

Usability Improvements: Operate usually deals with large quantities of workflow data, and the UI now includes loading indicators to give users feedback when switching views or loading a new dataset.

In addition, filter validation and usability was improved, making it much easier to drill down to inspect a specific workflow instance or set of workflow instances.

Upgrade Path with Data Migration: It’s now possible to migrate data when upgrading to new versions of Operate, a key capability as Operate sees increased production adoption.

Other Project Updates

Spring Zeebe 0.7.0 and Zeebe Kubernetes Operator

In November 2019, Zeebe developer advocate Mauricio Salatino announced the release of Spring Zeebe 0.7.0. You can read more about the release in this blog post. Mauricio will also be leading an effort to more quickly align Spring Zeebe projects with Zeebe releases.

Then in mid December 2019, Mauricio followed up with a Zeebe Kubernetes Operator, which arose from the need to manage more than one single Zeebe Cluster running inside Kubernetes Clusters.

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!