Have questions about Zeebe? On this page, we’ve collected a list of frequently asked questions about the project, product, and how to get involved.
If your question isn’t answered here, please reach out to us! The Community page lists different ways that you can get in touch.
- How is Zeebe different from Camunda BPM (and other traditional workflow engines)?
- Who is Camunda?
- Is Zeebe an open-source project? What license does it use?
- Where can I see the Zeebe roadmap?
- When will Zeebe be production ready?
- What is BPMN?
- Which BPMN symbols does Zeebe currently support?
- Can I use Zeebe with systems such as Apache Kafka or other messaging platforms?
- Can I run Zeebe with Docker?
- Does Zeebe store my historic workflow data for auditing or business analysis?
- What language is Zeebe written in?
- Do I have to be a Java developer to use Zeebe?
- What different programming language clients will Zeebe add in the future?
- Where can I ask questions about Zeebe, give feedback, or get help when I run into problems?
- How can I get started with Zeebe?
- How can I be informed of Zeebe releases and other project announcements?
- How can I contribute to Zeebe?
About the Project
How is Zeebe different from Camunda BPM (and other traditional workflow engines)?
To answer this question, it helps to share some background on why we started working on Zeebe in the first place. For a number of years now, we’ve seen users building microservices orchestration solutions with Camunda BPM. Simply put, microservices orchestration is a means of getting visibility into and managing the flow of business processes that span multiple, distinct microservices (note: if you’re completely new to Zeebe and to microservices orchestration, you might want to read our What Is Zeebe? writeup).
In many ways, Camunda BPM is well-suited for microservices orchestration. However, because Camunda BPM relies on a relational database to manage the state of active workflow instances, there are inherent limits to its scalability in terms of throughput (as measured, for example, by workflow instances started per second).
Based on our own benchmarking, we know that Camunda BPM is generally capable of scaling to handle hundreds of new workflow instances per second. But many microservices orchestration use cases that we were hearing about from users require handling tens of thousands or even hundreds of thousands of new workflow instances per second.
And so our decision to build Zeebe originated with the question, “How can we help our users take on emerging use cases that require more scale than Camunda BPM can currently provide?”
Therefore, a core difference between the two systems is that Zeebe stores workflow state directly on the machines that are running Zeebe and does not rely on a relational database–thus eliminating a key scaling bottleneck. Zeebe also provides a simple scaling mechanism (see: Partitions) that make it easy to distribute Zeebe on a cluster. This architecture allows Zeebe to achieve significant throughput on commodity hardware, and in our internal benchmarks, we’ve seen that Zeebe can achieve more than 1 million workflow instances started per second.
As we’ve built Zeebe, we’ve continued to ask ourselves–beyond just scalability–how we would design a workflow engine built specifically to orchestrate distributed services. And so there are other differences between the two systems beyond how workflow state is stored.
For example, because Zeebe will be used to orchestrate workflows where all tasks are completed by external services–services that might be written in many different programming languages–Zeebe clients are based on gRPC, and the protocol makes it easy to generate a client in any gRPC-supported programming language. In Camunda BPM, on the other hand, external task clients are wrapped around the engine’s REST API, and each new client is relatively manual to create.
This table provides a brief summary of some key differences between Camunda BPM and Zeebe. Below the table, we’ll also link to a few relevant blog posts and sections of the docs where you can learn more about Zeebe.
- To learn more about partitioning and scalability in Zeebe, see this blog post.
- To learn more about Zeebe data exporters, see this docs entry.
- To learn more about message correlation and message behavior in Zeebe, see this blog post.
Who is Camunda?
Camunda is the company behind Camunda BPM, a developer-friendly BPMN workflow engine with a large open source community and a fully-supported enterprise platform. Camunda has been operating in the workflow automation space for more than ten years, and we’ve helped hundreds of organizations around the world bring workflow automation projects to production with our products.
And we’re also the company behind Zeebe! We’re building Zeebe because we believe there’s a long list of emerging technical and business challenges that can best be solved using a next-generation workflow engine–an engine that is scalable and is designed to integrate seamlessly with modern software architectures.
We host meetups and other events on a regular basis, and we also attend conferences around the world. To connect with us in person, please take a look at our Events page.
Is Zeebe an open-source project? What license does it use?
Yes! Most Zeebe source files are made available under the Apache License, Version 2.0 except for the broker-core component. The broker-core source files are made available under the terms of the GNU Affero General Public License (GNU AGPLv3). See individual source files for details.
The Zeebe workflow engine is (and will remain) available for free. In the future, Camunda plans to offer a paid enterprise platform with Zeebe as the engine along with additional, proprietary products geared toward technical operators and business analysts, but the engine itself will still be free and open source.
Where can I see the Zeebe roadmap?
We maintain a roadmap on the Zeebe site where you can see what we’re working on in the current quarter as well as what we’ve achieved in recent quarters. The roadmap is available here.
This roadmap doc is not a binding commitment to what we’ll finish in any given quarter–it’s simply a way to provide some insight into what our engineering team is focused on in the present and near future.
When will Zeebe be production ready?
We haven’t yet set a firm date for Zeebe production readiness, but we’re aiming for Q1 2019. Of course, whether Zeebe is ready for you to use in production in Q1 2019 will depend on the BPMN symbol coverage and other deployment-related features that your use case requires. Stay tuned–we’ll be providing more detail on production readiness before the end of 2018.
Common Product Questions
What is BPMN?
BPMN is a widely-used modeling standard for defining and executing business processes. First released in 2004 (with the modern BPMN 2.0 specification following in 2011–this is what Zeebe uses), BPMN has been an ISO standard since 2013.
BPMN is used to define a graphical model and so-called execution semantics. In other words, the visual model is stored as an XML file that can be executed directly on an engine that keeps persistent state of running workflow instances.
To give an example, the model below is expressed with this XML.
It’s important to say that BPMN involves no code generation and no transformation! The XML is itself the source code. And BPMN is only concerned with the flow–you can use normal code for all other aspects of your solution.
That’s a key point for microservices orchestration, where external workers carry out the tasks in your workflow. When combined with the right workflow engine, BPMN makes it easy to connect tasks in a workflow to microservices and to do so in a way that doesn’t violate the principles of loose coupling and service independence.
Extending the sample order workflow above, we can build 3 distinct microservices to handle payments, inventory, and shipping. The workflow engine is responsible for sending work to the right service at the right point in the process.
Lastly, there’s BPMN’s maturity. BPMN is popular and well-established, and it’s proven its value in many workflow automation projects at companies both large and small. For this reason, there’s already a lot of experienced BPMN talent in the market as well as tutorials and books that make it easy for newcomers to learn the standard.
This answer is an excerpt from a blog post where we discussed BPMN’s role in emerging use cases such as microservices orchestration. To learn more, check out the original post and its follow up post.
- BPMN and Microservices Orchestration, Part 1 of 2: Flow Languages, Engines, and Timeless Patterns
- BPMN and Microservices Orchestration, Part 2 of 2: Graphical Models, Simplified Sagas, and Cross-functional Collaboration
Which BPMN symbols does Zeebe currently support?
The “BPMN Workflows” section of the Zeebe documentation is the best place to keep track of the BPMN symbols that are currently supported by Zeebe. And you can see the symbols we’re currently working on in the roadmap.
Can I use Zeebe with systems such as Apache Kafka or other messaging platforms?
Yes! Zeebe workflows can consume and react to messages that were published, for example, to an Apache Kafka topic.
Our co-founder Bernd gave a presentation about using Zeebe with Kafka at Kafka Summit 2018 in San Francisco. If you’re interested in learning more, you can find a recording of the presentation and the slides here.
Can I run Zeebe with Docker?
Yes! The Zeebe installation guide in the documentation includes a section about running Zeebe with Docker.
Does Zeebe store my historic workflow data for auditing or business analysis?
Zeebe itself does not store historic workflow data. However, Zeebe provides a simple exporter system (see the Zeebe docs) that makes it easy to persist historical workflow data in a storage system of your choice so that you have an audit log and can analyze the data.
Zeebe also includes a ready-to-go Elasticsearch exporter.
What language is Zeebe written in?
Zeebe is written in Java.
Do I have to be a Java developer to use Zeebe?
No! Although Zeebe itself is written in Java, it’s possible to use Zeebe even if you’re not a Java developer. Many Zeebe operations can be carried out with Zeebe’s command line interface. You can get familiar with the Zeebe CLI in the Quickstart guide.
In addition, Zeebe is built in a way that makes it possible to create clients in any gRPC-supported programming language. In this way, we consider Zeebe to be “language-agnostic”, meaning that developers who build applications in a wide variety of programming languages will be able to use Zeebe.
What different programming language clients will Zeebe add in the future?
Zeebe currently includes supported clients in Java and Go.
We have not yet decided what programming language clients to “officially” support in the project beyond Java and Go, and we’d like to hear user feedback about which languages users would like to see.
And because a Zeebe client can be generated relatively easily for any programming language that supports gRPC, we welcome the community to build clients for languages that aren’t currently supported.
If you build a community extension, let us know, and we can add it to the list on the project’s Community page.
Getting Started and Getting in Touch
Where can I ask questions about Zeebe, give feedback, or get help when I run into problems?
The Community page on the Zeebe website provides a number of different ways that you can get in touch with us.
How can I get started with Zeebe?
To get hands on with Zeebe, you can begin with the Quickstart, which walks you through basic Zeebe concepts without requiring you to write a line of code.
How can I be informed of Zeebe releases and other project announcements?
We’ll always announce releases, new blog posts, and other important project news via our Twitter account.
In addition, you can subscribe to the Zeebe email newsletter. If you scroll to the bottom of the homepage, you’ll see a place to submit your email address and subscribe.
How can I contribute to Zeebe?
We’ve written a guide for contributing to Zeebe. You can find it here.