Here is a detailed summary of the video transcription in Markdown format:
Event-Driven Architecture at Scale: Managing Millions of Events
Introduction
- Eric Johnson and Brian Zbrano, both passionate about Event-Driven Architecture (EDA), are excited to share their expertise on managing EDA at scale.
- They will cover the following topics:
- What is scale in the context of EDA?
- Defining EDA and understanding event schemas.
- Enforcing and evolving event schemas.
- Event schema management and discoverability.
- Observability in EDA.
What is Scale?
- Scale is not just about handling high traffic. It also involves managing the architecture and teams behind the EDA.
- Successful EDA applications do not look like a monolithic architecture, but rather a decoupled architecture with multiple teams across the world.
- The key focus of this talk is the health and management of the events, which are critical to the success of an EDA application.
Defining Event-Driven Architecture (EDA)
- EDA is about something happening and reacting to it.
- Events are signals that something has changed, they are immutable, and they represent a contract between producers and consumers.
- Event schemas define the structure of the events and are crucial for maintaining the contract between producers and consumers.
Enforcing and Evolving Event Schemas
- Introducing schema validation is important to avoid breaking consumers when producers make changes.
- There are three main approaches to handle this:
- Producer-side validation: Producers validate the schema before publishing events.
- Broker-side enforcement: The event broker acts as a traffic cop, validating the schema and rejecting invalid events.
- Consumer-side validation: Consumers validate the schema upon receiving events.
- Versioning and evolving event schemas is essential. Producers can use a versioning scheme and publish multiple versions simultaneously to allow consumers to migrate.
Event Schema Management and Discoverability
- Infrastructure governance: Providing deployable resources (e.g., AWS Service Catalog, Backstage) that enforce the event structure.
- Schema discovery: Tools like AWS EventBridge Schema Registry, AsyncAPI, and Event Catalog can help document, version, and make event schemas discoverable.
Observability
- Monitoring the health of the producer, consumer, broker, and the overall system is crucial in a distributed EDA.
- For EventBridge, you can monitor metrics like invocation attempts, successful invocations, retries, and latency.
- Consumers can publish their own events to indicate issues, which producers can then monitor and act upon.
Takeaways
- Build with EDA to reduce coupling.
- Enforce event schemas to ensure contract between producers and consumers.
- Plan for event evolution and versioning.
- Start with observability in mind.
Resources
- QR code and short link to resources
- Upcoming AWS re:Invent sessions related to EDA