Synchronous request-reply is the easy default. It also breaks at exactly the moment the system starts to matter — slow downstream services, deployment coordination across teams, back-pressure cascades that turn local hot spots into system-wide outages. Event-driven architecture replaces the implicit call graph with an explicit event log: producers publish facts, consumers subscribe and react in their own time, and the contract is a versioned schema in a registry. This article is the broker-and-contract perspective on event-driven architecture: choosing between Kafka, SNS+SQS, NATS, EventBridge, and Pulsar; schema registry discipline and contract evolution; idempotent consumers and at-least-once delivery; ordered partitioning and throughput; dead-letter queues; production configuration values; and the anti-patterns that defeat the pattern.