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.
About the Project
- How does Zeebe compare to Camunda BPM (and other traditional workflow engines)?
- How does Zeebe compare to other orchestration tools?
- 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?
Common Product Questions
- What is BPMN?
- Which BPMN symbols does Zeebe currently support?
- Can I use Zeebe with systems such as Apache Kafka or other messaging platforms?
- Zeebe uses some of the same concepts as Apache Kafka. Is Zeebe built on top of Kafka?
- 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?
Getting Started and Getting in Touch
- 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.
The table below 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. We also discussed this topic in a Zeebe webinar, which you can watch online here.
- 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.
How does Zeebe compare to other orchestration tools?
We have not yet created, for example, a comparison table that examines Zeebe alongside a selection of other orchestration frameworks.
But we do provide the list below to summarize Zeebe’s capabilities in categories that often come up in conversations with users who want to learn more.
Some users consider all ten of these categories to be important when choosing a workflow engine; others might only consider three or four to be important. It depends on the use case.
We also wrote a blog post where we elaborate on this list in more detail.
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?
Staring in July 2019, with the release of Zeebe 0.20.0, some of Zeebe’s components are licensed under the Zeebe Community License v1.0 (full license available here).
In summary, the Zeebe Community License v1.0:
- Allows what the MIT License allows except…
- It does not allow offering a commercial workflow service that uses Zeebe
Zeebe clients and APIs continue to be licensed under the Apache License, Version 2.0.
Because the Zeebe Community License does not align completely with the OSI’s definition of “open source”, we no longer refer to Zeebe as open source software and call it “source available” instead.
You can find more information about the Zeebe Community License and how different components are licensed on the Zeebe License Overview page.
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 source available.
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?
With the release of Zeebe 0.20.0, we removed the “developer preview” label and put out the first production-ready Zeebe release.
You can learn more about “production readiness” in this release announcement blog post.
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 creating work that a service can claim and work on 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.
Zeebe uses some of the same concepts as Apache Kafka. Is Zeebe built on top of Kafka?
a) think that Zeebe is a pretty nice compliment to Kafka–we spoke about Zeebe and Kafka at Kafka Summit SF in 2018 and will do so again at Kafka Summit London in 2019
b) indeed do use some of the same concepts as Kafka–partitions for horizontal scalability, replication factor for fault tolerance
…Zeebe is not built on top of Kafka.
Why not? There are a handful of reasons, and here are two of the most relevant.
Keeping Zeebe lightweight and easy to adopt: In addition to horizontal scalability, one of the reasons we’re building Zeebe the way we are (paritions + replications vs. relational database) is to limit the number of components required to use Zeebe. Requiring Kafka (and therefore ZooKeeper) to run Zeebe would have been a lot to ask from potential users, especially for those who aren’t using Kafka already, and we didn’t want to introduce that barrier.
Balancing flexibility and control over Zeebe with efficiency and maintainability: Building an engine on top of Kafka would’ve required us to put a lot of faith into a big and complex product that we don’t have much (if any) control over. That said, it wouldn’t have made sense to build every single Zeebe component from scratch, and we pull in other awesome open-source frameworks and tools where it’s possible. Zeebe relies heavily on RocksDB and gRPC, and we’re also working on integrating Atomix to cover some core functionality. At least for now, we’ve found a balance that allows us to build exactly the Zeebe that we want to build and that we believe will solve our users’ problems in the long-term while saving time and effort with existing libs and frameworks.
For more about Kafka and Zeebe, you can also read this blog post where we describe a prototype Kafka connector we built for Zeebe.
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.
For questions or feedback, we recommend the User Forum or the public Slack group. The Zeebe team monitors both of these channels closely and will respond to incoming questions.
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.
Next, you might want to try the getting started guide for the Java client or the getting started guide for the Go client.
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.