Ed McCormic Source on GitHub
All specs

Spring Boot and Java deep dives

Orchestration-based Saga

A central orchestrator drives payment, inventory, and compensating refunds over Kafka, with config from AWS (LocalStack locally).

View code on GitHub

Problem

Event-driven commerce used choreography, where services react to each other’s events. This project builds the orchestration alternative so the two can be compared.

Design

Client ─POST /orders─▶ Order ─OrderCreated─▶ Orchestrator ─ProcessPayment─▶ Payment
                                               ├─ReserveInventory─▶ Inventory
                                               ├─RefundPayment (compensation)─▶ Payment
                                               └─CompleteOrder / CancelOrder─▶ Order

Goals

  • Include the article’s “Production considerations”
  • AWS-managed configuration: LocalStack locally, real AWS in prod

Open questions

  • When does orchestration beat choreography? Write up the comparison once both are running.

Changelog

  • 2026-10-01: Started