This document discusses event-driven architecture (EDA) and how it compares to service-oriented architecture (SOA). EDA uses messaging to facilitate loose coupling between asynchronous and independent components. It is well-suited for unpredictable environments that must react to many real-time events. SOA focuses on synchronous request-response between components. The document provides examples of how to implement EDA using messaging and event processing engines, and recommends when to use EDA versus SOA based on factors like independence of process steps. Resources for further reading on EDA, SOA patterns, and related topics are also included.