The Zeebe team is excited to announce the 0.14 release. You can download 0.14 from the release page on GitHub. In this post, we’ll discuss some of the highlights from the release and other project updates.
We’d also like to let you know that next Thursday, December 13, we’ll be hosting a Zeebe webinar where we discuss recent Zeebe features and what’s coming next.
You can register for the webinar here. We’ve provided more detail about the agenda below.
Questions? Feedback? The Community page on our website lists a number of ways that you can get in touch with us. We monitor and respond to messages on the Slack group and support forum on an ongoing basis, and it would be great to hear from you.
Zeebe 0.14 Release Highlights
BPMN Support: Interrupting boundary events (timer and message) & event-based gateway
0.14 includes support for three new BPMN symbols that substantially extend the business logic supported by Zeebe. In this post, we’ll cover new symbols in the 0.14 release. For a complete overview of BPMN in Zeebe, please see the documentation.
Interrupting boundary events can be attached to a task or an embedded subprocess to “cancel” the current step in a process and to take a different path instead.
In the model below, we show a simple example for the interrupting boundary message event.
In this scenario, after placing an order, a user has the option to sign into their account and submit a cancellation request. When such a request comes through, a separate service publishes a message for Zeebe with cancellation details.
We can go ahead with the order cancellation as long as the cancellation message is correlated to the relevant workflow instance before the Ship Parcel task has been completed.
When the message is correlated, we’ll “cancel” the embedded subprocess and move to a Cancel Order task instead, followed by an Order Cancelled end event.
The interrupting boundary timer event is conceptually similar, but instead of “cancelling” a task and taking a different path in the model based on receipt of a message, we do so based on a timer.
Here, if the Collect Money task has not been completed within 12 hours–meaning that for some reason, we weren’t able to charge the customer–we progress instead to a Cancel Order task followed by an Order Cancelled end event.
The event-based gateway is a gateway that does not route based on data (as is the case with the exclusive gateway), but instead based on which event occurs first.
We’ll change up our sample model a bit to explain the event-based gateway. Here, instead of processing a payment directly, the worker that receives a job from the Request Payment service task invokes some other external service (e.g. PayPal) to handle the payment.
This external payment service publishes a message when a payment has been received. If this Payment Received message is correlated to a workflow instance within 12 hours of the payment request, then we progress to Fetch Items. Otherwise, we move to a Cancel Order task.
Job Error Message for Failed Jobs
It’s now possible for a user to specify an (optional) error message on the fail job command. In this first iteration, the error message is a simple string.
The error message is observable on the failed job record, and if the fail command leads to an incident, then the error message is also part of the incident record.
In the future, we might support structured data in error messages if this feature is important to users. In the meanwhile, this is a first step toward providing more insight into why a job failed.
Zeebe Simple Monitor Update – Zeebe 0.14 Compatibility
Zeebe Simple Monitor, a basic monitoring application that shows what’s going on inside Zeebe, released a new version that works with Zeebe 0.14.
Zeebe End-of-Year Webinar – Thursday, December 13
It’s been awhile since we’ve held a Zeebe webinar, and we’d like to give an update to the Zeebe community before the end of 2018.
And so we’ll be hosting a webinar on Thursday, December 13 at 5:00PM Central European Time (11:00AM US Eastern Standard Time).
We’ll cover the following and more:
• Important new concepts introduced in Zeebe 0.12 (released in October 2018)
• Generating a Zeebe client in any gRPC-supported programming language
• Zeebe’s current BPMN coverage and what’s coming in the near future
• Messages and message correlation in Zeebe (with a demo)
Webinars are the most fun when they’re interactive, and we hope you can attend and ask us questions.
Generating a Python client stub for Zeebe
Last week, we published a blog post showing step-by-step how to generate and use a Python client stub for Zeebe.
This is largely enabled by gRPC, which we introduced to Zeebe in the 0.12 release in October 2018. We’re really excited about gRPC’s potential to extend Zeebe to users who work in any of the framework’s 10 supported programming languages, and this walkthrough helps to demonstrate why.
We hope you have a chance to try generating a client stub yourself–in Python, or in your favorite programming language.
That’s all for now. Thanks for reading, and please don’t hesitate to reach out with questions.