Coder Social home page Coder Social logo

demo6camunda's Introduction

Demo for Saga using Camunda Platform 7

Demo project for ordering stuff with a simple Ordering Saga utilizing Camunda Platform 7 to take into account possible compensations in case ordering process fails mid-step.

Note that the newest version is Camunda 8, however Camunda 7 is open-source, while Camunda 8 is closed-source cloud-based SaaS solution.

  • By Maxym Mykhalchuk, see license
  • Built on Spring Boot 3 / Spring Framework 6
  • REST microservices (no CQRS/Event-Sourcing)
  • Uses MongoDB as storage

To run

  • Start MongoDB locally on port 27017 with no password
    • For example, using docker docker run --env=MONGODB_REPLICA_SET_MODE=primary --env=ALLOW_EMPTY_PASSWORD=yes -p 27017:27017 --name demo6-mongodb -d bitnami/mongodb:latest
    • To remove, docker stop demo6-mongodb and docker rm demo6-mongodb
  • Then start all the services ./gradlew bootRun --parallel --max-workers 3

To test

  • Open the services
  • Open Saga monitoring using Camunda
    • Open Camunda Cockpit with user demo and password demo
    • And click 'Order Workflow'
  • Order anything via Order Service
  • Observe decreased user credit in Payment Service
  • Then, after some time, Saga will fail on the last step, and user credit will be restored

demo6camunda's People

Contributors

mihmax avatar

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.