Communication between (micro-)services
summary
Compares peer‑to‑peer event chains to a dedicated orchestrator and shows a working Java/.NET demo repo that mixes Kafka events, REST calls and an embedded Camunda BPMN engine so long‑running retries, timers and Saga/compensation handlers persist to a relational DB. Argues event broadcasts reduce temporal coupling but create opaque chains across “hundreds of services,” and demonstrates concrete code (one‑line engine creation, task handlers, seven‑day timer, two‑week retry for failed payments) that keeps state, retries idempotently and emits final payment received/failed outcomes.
AI-written summary · about
chapters (22)
- 0:00Intro
- 1:04Example
- 2:17DDD
- 3:52Events decrease coupling
- 6:35Using events to solve problems
- 9:51Threelegged race
- 12:18Orchestration is evil
- 15:25Bad API design
- 19:21Boarding pass issue
- 21:15EasyChat
- 22:51Handling state
- 24:43Virtual engines
- 27:41Code
- 29:26Time
- 30:47Retry
- 31:15Distributed systems
- 32:22Network errors
- 33:37Distributed transactions
- 34:30Compensation
- 35:37One important thought
- 37:55Reality check
- 39:02Wrap up
related talks
47mComplex event flows in distributed systems
46m3 Common Pitfalls in Microservice Integration
51mComplex Event Flows in Distributed Systems
33mAutomating Processes in Modern Architectures
49mThe Benefits of Orchestration in Distributed Systems
11mLightning Talk: Event Based Communication in Complex Micro-service...
45mLive Coding Some (Microservice) Integration Problems
58mImplementing Event-driven Microservices
