Zeebe and Operate Alpha Releases: November 2019 Edition

by Mike Winters on Nov 11 2019 in Releases.

We’re excited to announce the release of Zeebe 0.22.0-alpha1 and Operate 1.2.0-alpha1.

You can find information about how to get started with Zeebe and Operate in the docs.

In the rest of this post, we’ll cover highlights from the releases along with other project updates.

BPMN Support in Zeebe: Call Activity and Timer Event Subprocess

Zeebe 0.22.0-alpha 1 includes support for the BPMN call activity and timer event subprocess.

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.

Zeebe now supports BPMN's call activity

The timer event subprocess (both interrupting and non-interrupting) makes it possible to trigger a subprocess based on a timer event.

The non-interrupting timer event subprocesses supports scenarios where a user wants to do something in parallel to the parent process on a regular interval (without adding the timer to a specific scope in the parent process) such as, for example, sending a status update.

The interrupting timer event subprocess supports scenarios where, for example, a user wants to implement a global timeout for a parent process. When the subprocess timer event is triggered, the parent process will be canceled and the subprocess initiated instead.

Support for the message event subprocess is planned for the next release.

Await Workflow Result in Zeebe

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 late October.

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.

Zeebe can now fetch and return the result of a workflow instance

Let’s walk through one example. For the simple workflow model shown above, here are three different ways to create a workflow instance…

// just start instance and don't wait for result
$ zbctl create instance sum --variables '{"x": 12, "y": 324}' 
{
  "workflowKey": 2251799813685251,
  "bpmnProcessId": "sum",
  "version": 1,
  "workflowInstanceKey": 2251799813685296
}

// wait for result and get all variables
$ zbctl create instance sum --variables '{"x": 12, "y": 324}' --withResult
{
  "workflowKey": 2251799813685251,
  "bpmnProcessId": "sum",
  "version": 1,
  "workflowInstanceKey": 2251799813685309,
  "variables": "{\"x\":12,\"y\":324,\"result\":336}"
}

// only fetch result variable
$ zbctl create instance sum --variables '{"x": 12, "y": 324}' --withResult=result
{
  "workflowKey": 2251799813685251,
  "bpmnProcessId": "sum",
  "version": 1,
  "workflowInstanceKey": 2251799813685322,
  "variables": "{\"result\":336}"
}


And lastly, a quick note on Operate: while we don’t have any user-facing features we’ll highlight here, the team made steady progress on user experience and scalability in their 1.2.0-alpha1 release.

New On The Blog

In addition to the aforementioned blog post on awaitable workflow outcomes, Josh shared a monitoring package for Node.js Zeebe applications, and Mauricio Salatino, our other Zeebe developer advocate, published a Getting Started with Zeebe on Kubernetes with Spring Boot guide.

Is there a Zeebe topic that you’d like to see explored more deeply in a blog post? Let our dev advocates know on Twitter!

Questions? Feedback?

If you have questions or comments about this release or anything Zeebe and Operate-related, we’d love to hear from you.

Head on over to the Zeebe user forum and let us know what’s on your mind.