An introductory Zeebe project (Getting started)

We have created a Hello World Zeebe projectarrow-up-right, to help familiarization for those new to working with Zeebe. The project implements a bpmn consisting of service and receive tasks, an exclusive gateway containing a conditional and default path, and a timeout event, resulting in a simple introduction to core concepts used in the various payment hub bpmn workflows.

It also assists in familiarization, with the payment hub ee exporter repositoryarrow-up-right, which is used to send Zeebe data to Kafka.

Please follow the steps below to download and run the demo, or follow the instructions on the zeebe-demo-dpc github pagearrow-up-right

Set up your enviroment

1. Make sure you have Dockerarrow-up-right installed. If you don't, you can install it by following their installation guidearrow-up-right

2. Please ensure you can use docker compose

3. Clone the zeebe-docker-compose repositoryarrow-up-right from github. This will allow you to run zeebe, camunda operate, kafka and elasticsearch in a docker container

$ git clone https://github.com/camunda-community-hub/zeebe-docker-compose.git

4. Clone the ph-ee-exporter repositoryarrow-up-right from github. This will allow you to send data to Kafka

$ git clone https://github.com/openMF/ph-ee-exporter.git

5. Run maven package in the ph-ee-exporter project, to generate a jar exporter-1.0.0-SNAPSHOT.jar and note the absolute path of this jar and kafka-clients-2.4.0.jar on your computer

6. Navigate to zeebe-docker-compose/operate

$ cd zeebe-docker-compose/operate

7. Replace the contents of the docker-compose.yml file with the following:

version: "2"

networks:
  zeebe_network:

volumes:
  zeebe_data:
  zeebe_elasticsearch_data:
  zookeeper_data:
    driver: local
  kafka_data:
    driver: local

services:
  zeebe:
    image: camunda/zeebe:1.1.0
    environment:
      - ZEEBE_LOG_LEVEL=debug
      - ZEEBE_BROKER_EXPORTERS_KAFKA_CLASSNAME=hu.dpc.rt.kafkastreamer.exporter.KafkaExporter
      - ZEEBE_BROKER_EXPORTERS_KAFKA_JARPATH=/exporter.jar
      - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_JARPATH=/exporter.jar
      - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_CLASSNAME=hu.dpc.rt.kafkastreamer.exporter.NoOpExporter
    ports:
      - "26500:26500"
      - "9600:9600"
    volumes:
      - zeebe_data:/usr/local/zeebe/data 
      - ./application.yaml:/usr/local/zeebe/config/application.yaml
      - [INSERT ABSOLUTE PATH OF kafka-clients-2.4.0.jar HERE]:/usr/local/zeebe/lib/kafka-clients-2.4.0.jar
      - [INSERT ABSOLUTE PATH OF exporter-1.0.0-SNAPSHOT.jar HERE]:/exporter.jar
    depends_on:
      - elasticsearch
    networks:
      - zeebe_network
  operate:
    image: camunda/operate:1.1.0
    ports:
      - "8080:8080"
    depends_on:
      - zeebe
      - elasticsearch
    volumes:
      - ../lib/application.yml:/usr/local/operate/config/application.yml
    networks:
      - zeebe_network
  elasticsearch:
    container_name: elasticsearch
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
    ports:
      - "9200:9200"
    environment:
      - discovery.type=single-node
      - cluster.name=elasticsearch
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - zeebe_elasticsearch_data:/usr/share/elasticsearch/data
    networks:
      - zeebe_network
  zookeeper:
    image: docker.io/bitnami/zookeeper:3.7
    ports:
      - "2181:2181"
    volumes:
      - "zookeeper_data:/bitnami"
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes
    networks:
      - zeebe_network
  kafka:
    container_name: kafka
    image: docker.io/bitnami/kafka:2
    ports:
      - "9094:9094"
    volumes:
      - "kafka_data:/bitnami"
    environment:
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_LISTENERS=INTERNAL://kafka:9092,OUTSIDE://kafka:9094
      - KAFKA_ADVERTISED_LISTENERS=INTERNAL://kafka:9092,OUTSIDE://localhost:9094
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:PLAINTEXT,OUTSIDE:PLAINTEXT
      - KAFKA_INTER_BROKER_LISTENER_NAME=INTERNAL
    depends_on:
      - zookeeper
    networks:
      - zeebe_network
  db:
    image: postgres
    environment:
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_DB=testdb
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    ports:
      - "5432:5432"

8. Replace lines 29 and 30 with the absolute path of exporter-1.0.0- SNAPSHOT.jar and kafka-clients-2.4.0.jar on your computer, in the indicated positions

9. Start docker within zeebe-docker-compose/operate with the force-recreate option enabled to ensure docker runs with the new docker- compose.yml file

The following steps are only necessary if you wish to use kafka-tool to view kafka messages:

10. Install Kafka Toolarrow-up-right

11. Add a new cluster, with Kafka Cluster Version 2.4. Zookeeper Host should be localhost and Zookeeper Port should be 2181. In advanced settings, set broker to localhost:9094.

Running the Zeebe demo

1. Clone the repository for the zeebe demo application

2. Navigate to zeebe-docker-compose/operate

3. Start docker within zeebe-docker-compose/operate

4. Navigate to zeebe-docker-compose/bin

5. Note the absolute path of hello-process.bpmn in the zeebe-demo-dpc project on your computer

6. Deploy bpmn:

7. Run ZeebeDemoApplication

Last updated

Was this helpful?