Microservices architecture

During my internship (for a startup company) I worked on a project by using Zeebe and a python client to automate some workflow service tasks. After a successful internship they were convinced of the possibilities by using Zeebe. I read some of Bernd Rueckers articles/watched some of their videos about microservices. he has written an article about using Kafka together with Zeebe to achieve a microservices Orchestration architecture. So I was convinced using both technologies together to achieve this kind of architecture. Later, during the read of this article: https://blog.bernd-ruecker.com/drafting-your-camunda-cloud-architecture-connecting-the-workflow-engine-with-your-world-3d94e8d404d6…. I found out that it is also possible to create the same kind of architecture by using Zeebe as middleware, by visiting the git repo “Flowing-retail” flowing-retail/zeebe at master · berndruecker/flowing-retail (github.com).

I was wondering to following:

  • You are talking about the need of Camunda Cloud. My question to you is if its required to use Camunda Cloud (for the quick cluster setup) or is it also possible to use something like kubernetes?
  • I dont fully understand how the different services are connected to each other. at the beginning I thought via REST endpoint? but if that is not true, could you explain me? and ignore the last question. In the documentation you describe that you can create the zeebe cluster via Camunda and configure it via in every service via the:

application.propperties

but how can I simulate this architecture when I use a standalone zeebe broker for example?

  • Further more, the example is made by using Java/NodeJS. We are using Python but I assume from your article that you can build any piece of code that provides REST endpoint technology?

Hey MrRoboo.

Thanks for moving this discussion to the forum and sorry for the delay - we had our annual company retreat this week.

Let me start answering some questions first and then please ask again if some things are still often.

  1. You can use Zeebe as a middleware as you rightfully found out. No Kafka required in his case.
  2. You can run Zeebe self-managed on your own Kubernetes cluster - this is described here: Kubernetes deployment | Camunda Cloud Docs
  3. You mean between Zeebe components? This is mainly grpc. Also the client towards the broker is grpc (see Zeebe API (gRPC) | Camunda Cloud Docs), but we might eventually add a REST layer on top of that.
  4. Typically you use the language clients, there is also one community extension for Python: Python | Camunda Cloud Docs

Hope that helps with the next steps?
Best
Bernd

1 Like

Thank you for your response! Please don’t apologize about the delay, I am already very honored that you spend time answering my questions.

Your reply confirms the most of my thoughts about how we can use Zeebe. Thanks to your articles and Camunda Cloud Docs. For now I have one more question. Reading about the Kubernetes deployment manual on Camunda Cloud Docs they say “We recommend that you use Kubernetes when deploying Zeebe to production.”, for now we are only testing how Zeebe works. So this means that I want to try it locally to test some things out. I decided starting using docker to set up a Zeebe cluster instead of using zeebe as a stand alone broker. (As I recently graduated from school I am not familiar with a lot of concepts/technologies, so I am learning a lot by testing things out/reading articles etc.) As you mentioned Kubernetes to start a cluster, I was wondering if it also is possible to use docker but looking at this example zeebe-docker-compose/docker-compose.yml at master · camunda-community-hub/zeebe-docker-compose (github.com) that shouldn’t be a problem at all?

Docker generally works, but the docker compose files are not maintained on the same quality level and also not recommended to use in production. But to play around that might be a good start. If you only want to run the ZEebe broker itself you can also simply download the distro and start it locally.

Out of curiosity: why aren’t you just use the trial of Camunda Cloud to play around - then you don’t have to fiddle with any of Kubernetes or Docker?

1 Like

Hi Berndruecker,

To answer your question:
We are not using the Camunda Cloud trail as the trail expires after 30 days (and I probably need some more time to experiment). As beginner software engineer it takes some time to get familiar with the possibilities of implementing Zeebe. Furthermore, I hope to get a better understanding how the zeebe clusters operates by setting it up by myself. We are also not planning to implement it in a very short period. Hence, I stick with docker or just running it locally.