Events are the wrong abstraction: Rethinking distributed systems
Nov 12, 2024

Summary
This post argues that Durable Execution, as exemplified by Temporal, is a superior abstraction to Event-Driven Architecture (EDA) for building distributed systems. It details common problems with EDA, such as lack of APIs, tight coupling, scattered logic, poor debuggability, ad-hoc state machines, increased latency, race conditions, and system upgradability issues. It then presents Durable Execution as an alternative that centralizes business logic, manages state consistently, survives crashes gracefully, and designs processes flexibly. The post uses a payment accumulation system as an example to illustrate the difference in architectural diagrams between EDA and Temporal.