A subscription lifecycle saga — order → payment → fulfillment — orchestrated by
Temporal and triggered via Kafka domain events. Built with
Spring Boot 4 + Spring Modulith (four enforced module boundaries in one JVM).
Each button makes a single REST call — step through the saga manually to watch each state transition in real time.
1Create Order
Saga starts in AWAITING_PAYMENT once the Kafka consumer picks up order.created
2Trigger Payment
Acting on orderId
—
Create an order first — the orderId will appear above these buttons
3Fulfillment
Triggered automatically after payment confirmation — FulfillmentConsumer listens to
payment.processed on Kafka, saves the record, then signals fulfillmentDone to Temporal.
No manual step needed.