// the find
berndruecker/flowing-retail
Sample application demonstrating an order fulfillment system decomposed into multiple independant components (e.g. microservices). Showing concrete implementation alternatives using e.g. Java, Spring Boot, Apache Kafka, Camunda, Zeebe, ...
A sample order-fulfillment app split into microservices, built to accompany Bernd Rücker's process automation book/talks. It shows the same order-checkout-payment-shipping flow implemented multiple ways: REST, Kafka choreography, and Zeebe/Camunda 8 orchestration, so it's for developers trying to understand event-driven architecture and workflow engines side by side rather than for reuse in a real product.
The parallel-implementation structure is the actual value here — you can diff the same business process across REST-with-stateful-retries, Kafka pub/sub, and Zeebe orchestration and see the tradeoffs directly in code instead of in a slide deck. Each service is a real, runnable Spring Boot app with its own Dockerfile, so you can spin up the whole system and watch messages flow rather than just read pseudocode. The monitor service with a live BPMN/websocket view is a genuinely useful way to visualize choreography that's otherwise invisible.
The author states outright the code isn't meant to be production style, and it shows: no tests, no docker-compose to wire the pieces together at the top level, and env config scattered as bare application.properties files per service. It's tied to Camunda 8/Zeebe, so if you don't already care about that ecosystem, half the repo's reason for existing doesn't apply to you. Last pushed mid-2024 with no CI, so it's not verified against current Camunda 8 or Kafka client versions — expect some drift if you actually try to run it today.