Git Product home page Git Product logo

zeebe-cloudevents-router's Introduction

Community Extension Lifecycle: Incubating Compatible with: Camunda Platform 8

Zeebe Knative / CloudEvents Worker

This project focuses on providing a bridge between Zeebe + BPMN to Knative and CloudEvents to provide CloudEvents orchestration using Zeebe Workflows.

Service Task Properties

Properties

  • HOST
  • TYPE
  • MODE:
    • EMIT_ONLY:
    • WAIT_FOR_CLOUD_EVENT:
  • WAIT_TYPE: Cloud Event Type to wait

The worker has two modes:

  • EMIT ONLY: It will emit a CloudEvent and complete the Job
  • WAIT FOR CLOUD EVENT: It will wait to receive CloudEvent with a specific Type which will be correlated by the workflow and job key to complete the Service Task.

Endpoints

The worker exposes HTTP Endpoints to receive CloudEvents that can be propagated to workflows.

  • / POST - > Receive CloudEvent via HTTP that will map to a Job
  • /message POST -> Receive a CloudEvent that will be forwarded as a BPMN Message for an Intermediate Catch Event

You can always access the Open API UI here: http://localhost:8080/swagger-ui.html

Examples

EMIT and WAIT

zbctl deploy emit-wait.bpmn --insecure

zbctl create instance EMIT_WAIT --insecure

curl -X POST localhost:8080/ -H "Content-Type: application/json" -H "Ce-Id: 536808d3" -H "Ce-Type: <WAIT_TYPE>" -H "Ce-Source: curl" -H "Ce-Subject: <WORKFLOW_KEY>:<PROCESS_INSTANCE_KEY>:<JOB_KEY>" -d '{"name":"salaboy"}' -v

EMIT and CONTINUE:

zbctl deploy emit-and-continue.bpmn --insecure zbctl create instance EMIT_AND_CONTINUE --variables "{"myVarId" : "123"}" --insecure curl -X POST localhost:8080/message -H "Content-Type: application/json" -H "Ce-Id: 536808d3" -H "Ce-Type: CloudEvent Response" -H "Ce-Source: curl" -H "CorrelationKey: 123" -d '{"name":"salaboy"}' -v

TICKETS

Deploy workflow

zbctl deploy tickets.bpmn --insecure

Register Tickets.Purchase event to Start Workflow

curl -X POST http://localhost:8080/workflows -H "Content-Type: application/json" -d '{"cloudEventType" : "Tickets.Purchase", "processDefinitionKey" : "2251799813690282"}'

Send Tickets.Purchase to start a workflow

curl -X POST http://localhost:8080/workflow -H "Content-Type: application/json" -H "Ce-Id: 536808d33" -H "Ce-Type: Tickets.Purchase" -H "Ce-Source: curl" -d '{"sessionId":"5" }'

Secrets and Secrets Managers

This project can be used with External Secrets to fetch credentials from external services from cloud provider specific Secret Managers. In order to install External Secrets you can follow the project setup instructions:

https://github.com/godaddy/kubernetes-external-secrets

(touch)

zeebe-cloudevents-router's People

Contributors

actions-user avatar celanthe avatar dependabot[bot] avatar renovate[bot] avatar salaboy avatar tobiasschaefer avatar untereiner avatar xomiamoore avatar zelldon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

zeebe-cloudevents-router's Issues

Repository status

Hi,
I am interested in using CloudEvents with Zeebe/Camunda.
This repository seems to be a good starting point.
However it looks like abandoned.
Where could I start to give him life back ?

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: renovate.json
Error type: The renovate configuration file contains some invalid settings
Message: Invalid configuration option: workarounds:disableMavenParentRoot

Update dependencies to old artefacts

This module requires updating the following dependencies because they are out-dated. This update will require internal rework, as it depends on cloud events and cloud events extensions:

 <dependency>
        <groupId>io.zeebe.spring</groupId>
        <artifactId>spring-zeebe-starter</artifactId>
        <version>${zeebe.version}</version>
  <dependency>

    <dependency>
        <groupId>io.cloudevents</groupId>
        <artifactId>cloudevents-json-jackson</artifactId>
        <version>2.0.0-milestone1</version>
    </dependency>
           <dependency>
        <groupId>com.github.salaboy</groupId>
        <artifactId>zeebe-cloud-events-java-sdk</artifactId>
        <version>master-SNAPSHOT</version>
    </dependency>

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/build.yml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
.github/workflows/deploy.yml
  • actions/checkout v4
  • actions/cache v4
  • actions/setup-java v4
  • camunda-community-hub/community-action-maven-release v1
  • actions/upload-release-asset v1
  • ubuntu 22.04
maven
pom.xml
  • org.camunda.community:community-hub-release-parent 1.4.4
  • org.junit:junit-bom 5.10.2
  • org.junit.jupiter:junit-jupiter 5.10.2
  • org.assertj:assertj-core 3.25.3
  • org.apache.maven.plugins:maven-enforcer-plugin 3.4.1
  • org.apache.maven.plugins:maven-javadoc-plugin 3.6.3
  • com.coveo:fmt-maven-plugin 2.13
  • org.jacoco:jacoco-maven-plugin 0.8.11
  • org.apache.maven.plugins:maven-surefire-plugin 3.2.5
  • io.zeebe:flaky-test-extractor-maven-plugin 2.1.1
  • org.springframework.boot:spring-boot-starter-webflux 3.2.3
  • io.camunda:spring-zeebe-starter 8.4.2
  • io.cloudevents:cloudevents-core 2.5.0
  • io.cloudevents:cloudevents-json-jackson 2.5.0
  • org.springframework.boot:spring-boot-starter-actuator 3.2.3
  • org.springframework.boot:spring-boot-starter-webflux 3.2.3
  • io.camunda:spring-zeebe-starter 8.4.2
  • org.springframework.boot:spring-boot-starter-test 3.2.3
  • org.springframework.boot:spring-boot-maven-plugin 3.2.3
zeebe-cloudevents-common/pom.xml
  • org.projectlombok:lombok 1.18.32
zeebe-cloudevents-spring/pom.xml
  • io.cloudevents:cloudevents-json-jackson 2.5.0
  • io.cloudevents:cloudevents-http-basic 2.5.0
  • io.cloudevents:cloudevents-spring 2.5.0
  • org.springdoc:springdoc-openapi-webflux-ui 1.8.0
  • io.fabric8:knative-client 6.10.0
  • org.projectlombok:lombok 1.18.32
  • com.google.cloud.tools:jib-maven-plugin 3.4.1

  • Check this box to trigger a request for Renovate to run again on this repository

Router as Exporter of Zeebe Events as Cloud Events

The Router should be able to expose Zeebe Events as Cloud Events.
This can be achieved by making the Router and importer from a Zeebe Exporter, so it can do the translation from internal events to Cloud Events.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.