PlanBGmbH / zeebe-dapr-example

An example that allows to orchestrate Dapr microservices with the Zeebe process engine.
Apache License 2.0
20 stars 6 forks source link
dapr zeebe

Zeebe Dapr Example

An example that allows to orchestrate Dapr microservices with the Zeebe process engine.

This example contains a .NET microservice that will be orchestrated with the Zeebe process engine. The example uses the Dapr input/output bindings for Zeebe.

The repository contains a simple Zeebe BPMN process: Alt text

The process can be viewed or edited with either the web based tooling from BPMN.IO or you can download the Desktop Modeler.

The microservice contains the following endpoints:

Endpoint Description
command/topology Request cluster topology
command/deploy-process Deploys a process
command/create-instance Creates an instance of a deployed process
command/cancel-instance Cancels a started process instance
command/set-variables Sets new variable for an element (process, activity, ...)
command/resolve-incident Resolves a job incident
command/publish-message Publishes a message
command/activate-jobs Activates jobs
command/complete-job Completes a job
command/fail-job Fails a job
command/update-job-retries Updates the job retries
command/throw-error Throws an error for a job
calc Worker implementation that will be executed by the Zeebe process engine

Setup Zeebe locally

Camunda provides the camunda-platform repository with different docker compose configurations. We use the docker-compose-core configuration, which is good for development purposes and provides the Operate UI.

The following tools need to be installed on the local developer machine. Please refer to the documentation of these tools to learn how to install them.

The following commands must be executed to run Zeebe:

git clone https://github.com/camunda/camunda-platform.git
docker compose -f docker-compose-core.yaml up

Note: If you try to run this example on a M1 Mac, then you need to update the zeebe, operate and tasklist images to version 8.2.0-alpha4. You also needs to remove the connector part from the docker compose file.

After all services are started the following URIs can be used:

Tool URI
Operate http://localhost:8081
Tasklist http://localhost:8082
Zeebe Gateway localhost:26500

The default username and password is: demo

Run the worker service

The following command will run the service Zeebe.Worker with dapr. The repo contains some example requests in the requests folder, which can be executed against the service.

dotnet run --project "./Zeebe.Worker/Zeebe.Worker.csproj"