Event Driven Architecture
Problem
Tight coupling between services causes cascading failures
Solution
Domain events published on state changes, consumed by interested services
Implementation
Outbox pattern for reliable publishing. Event catalog defines contracts.
Tradeoffs
Eventual consistency, harder debugging
Failure Scenarios
Missed events → reconciliation jobs, idempotent consumers