/trip-flow

Demo of an application with Camunda Platform 8 and Clean Architecture

Primary LanguageJava

Camunda Platform 8 with Spring Boot Demo

This project aims at showcasing how the following technologies and architectural principles can be used together in an example application.

Here is a link to an article on Medium which references this repository.

  • Camunda Platform 8 (self-managed)
  • BPMN workflow
  • Spring Boot
  • Clean Architecture
  • DDD

How to run

  • Start the stack with docker-compose up -d
  • Deploy BPMN diagram bpmn/trip-flow.bpmn to Camunda using Simple Monitor interface
  • Run Spring Boot application (default profile) from the IDE

What is running

  • TripFlow applicaiton: http://localhost:8080/trip (username: customer1 or customer2, password: demo)
  • Camunda Self-Managed instance (with Hazelcast exporter): localhost, ports: 26500 (and others)
  • Zeebe Simple Monitor: http://localhost:8082/
  • Postgres database: localhost, port 5432, database: tripflow

References

Special thanks to Camunda team who gave me some pointers about how to integrate Zeebe's Java client. This GitHub repo was especially helpful.

⭐ As I am writing this, CamundaCon 2022 is taking place! There is a great presentation by Luc Weinbrecht, speaking exactly about how to use Camunda and Clean Architecture together.

Here is the list of main references consulted while working on this project. Please, see JavaDoc in the relevant source code for more detailed references.

  1. Camunda Community Hub, Lowcode UI template example
  2. Luc Weinbrecht, GitHub, "Camunda DDD and Clean Architecture"
  3. Camunda Platform, Getting Started, Spring Boot client
  4. Camunda Platform 8, GraphQL API Tasklist, Java client
  5. "Ports & Adapters Architecture", Herberto Graça
  6. "Clean Architecture", Robert C. Martin
  7. Clean Domain-Driven Design
  8. Revisiting cargo tracking application using Clean DDD
  9. Bernd Rücker, "Navigating Technical Transactions with Camunda 8 and Spring"

Credits for the sample data and images

To have somewhat realistic data samples for flights, hotels, etc., the following resources (publicly available).

  1. Google Travel
  2. Unsplash images, please, also consult Unsplash licence