As the year comes to a close, we’ll take a moment to review what was accomplished in Zeebe in 2018 and discuss what’s next to come.
2018 was an exciting year with many new features and significant conceptual updates that changed the scope of Zeebe. We’ll cover both in this post, and we’ll also talk about our efforts to spread the word about Zeebe around the globe.
Zeebe Features and Releases in 2018
There were a total of 12 Zeebe releases in 2018, starting with 0.6.0 in January through to 0.14.0 in December (and a handful of bugfix releases throughout). All releases are available for download here.
Those 12 releases included more than 2,000 commits and 376 PRs closed. Headcount on the Zeebe team at Camunda grew by 2 this year, with new folks joining in both engineering and community roles.
On the community projects side, there were 8 Zeebe Modeler releases and 8 Zeebe Simple Monitor releases throughout the year, and Spring Zeebe was recently updated to support Zeebe’s most recent 0.14.0 release. We’d like to extend a big thank you to all of the contributors to community projects for their efforts.
Next, we’ll walk through major updates to Zeebe in a few categories.
BPMN Symbol Coverage
We added support for many new BPMN symbols in Zeebe over the course of the year, greatly extending the business logic that can be expressed in Zeebe workflows.
Symbols available in Zeebe through the 0.14 release include:
- Service tasks
- Receive tasks
- Exclusive (XOR) gateways
- Parallel gateways
- Event-based gateways
- None events
- Message events (intermediate message catch event, interrupting message boundary event)
- Timer events (intermediate message timer event, interrupting timer boundary event)
And the following are planned for Zeebe 0.15 in January 2019:
- Message and timer start events
- Non-interrupting message and timer boundary events
If you prefer seeing this in workflow form, the model below shows an overview of all symbols supported by Zeebe as of now (plus those coming in 0.15).
And if you prefer smiling robot face form, well, we have that too.
Messages and message correlation
Dealing with messages in a partitioned, distributed system can be tricky, and so along with Zeebe’s support for message events came powerful message correlation features. Zeebe correlates a message to a workflow instance with no heavy lifting required by the user to know which partition to find a message on–this is all managed by Zeebe.
And messages in Zeebe include a time-to-live (TTL) feature, making it possible for Zeebe to “buffer” a message for a given amount of time even if there isn’t a workflow instance waiting to be correlated when the message is published. Zeebe’s TTL provides users with flexibility when communicating asynchronously with external services.
These message correlation features make it possible to connect Zeebe with messaging platforms like Kafka so that Zeebe can react to messages published by other systems. Zeebe is now a workflow engine capable of integrating with a modern, message-driven architecture.
Conceptual Changes in Zeebe 0.12: A gRPC Gateway and Exporter System
In October 2018’s Zeebe 0.12 release, we introduced key conceptual changes to Zeebe that resulted in a more streamlined system. To summarize:
- Topics were removed, and Zeebe became a static, partitioned system without multi-tenancy.
- Topic subscription was replaced by a new exporter system, making it possible to stream historic workflow data out of Zeebe into a storage system of the user’s choice. Zeebe ships with an out-of-the-box Elasticsearch exporter.
- Zeebe moved to gRPC-based client-broker communication, which includes support for generating new Zeebe client stubs in any of gRPC’s ten supported programming languages. There’s already a gRPC-based C# community client (with other community clients in the works).
Below is a diagram showing Zeebe’s architecture from 0.12 onward. To hear Zeebe engineering team lead Sebastian Menski explain this diagram in more detail, you can check out our end-of-year Zeebe webinar.
Horizontal scalability in Zeebe
In Zeebe 0.9.0, released in May 2018, it became possible to configure a replication factor in Zeebe. When combined with Zeebe’s partitions, the replication factor makes it possible to scale Zeebe horizontally and achieve very high throughput–a key motivation behind why we started the project in the first place.
With regard to scalability, we documented what we found in an internal benchmark earlier this year.
Zeebe To The World in 2018
We also put a lot of effort into spreading the word about Zeebe, sharing what we’re up to and getting feedback from prospective users.
Camunda co-founder and developer advocate Bernd Rücker delivered an absolutely crazy number of talks all around the globe, many of which covered Zeebe and the role of workflow automation in microservices architectures. A couple of highlights include the…
- Zeebe live hacking session at CamundaCon 2018 in Berlin
- Zeebe session at Kafka Summit San Francisco, the annual Apache Kafka community conference
Zeebe also made a couple of Meetup appearances at the new-in-2018 Camunda User Group Berlin (and other Meetups, too).
We did lots of work on the Zeebe website to try to provide more background and context for potential Zeebe users, adding:
- “What Is Zeebe?” Write-up
- Revamped (and more frequently-updated) roadmap
- Project FAQ
- This blog you’re reading right now
Then we wrapped up the year with a Zeebe webinar (watch it here), talking through changes to the Zeebe architecture and demoing Zeebe’s message correlation features.
Zeebe in 2019
Earlier this week, we updated the Zeebe roadmap with some of our Q1-2019 goals, which include:
- BPMN support (as mentioned above) for message / timer start events and message / timer non-interrupting boundary events
- A new payload concept that supports scopes and concurrency
- Improved error messaging for users
- Infrastructure changes for improved stability
Our overarching goal is to get Zeebe to a place where we’re ready to provide a “production ready” release as soon as possible. When it comes to BPMN support, we’re pretty much there–while we’ll continue to add BPMN symbols over time (based on user needs), we believe that Zeebe already provides a solid BPMN foundation to enable a wide range of use cases.
And so much of the first half of 2019 will be focused on stability: ensuring that Zeebe runs predictably in a cluster, that Zeebe can be used with industry-standard deployment tooling (e.g. Kubernetes), can be upgraded to new versions, and so on.
We’re really excited about what’s yet to come.
We hope that everyone had a wonderful 2018 and wish you a fulfilling end to the year.