Event-driven architecture is considered to be the holy grail of system design in many ways. Its design is based on events, which are actions around which we can build reactive systems. This leads to asynchronous, decoupled, persistent, fault-tolerant and scalable systems. In this course, Datadog Developer Advocate (ex AWS) James Eastham will assume no prior knowledge of EDA and teach you the fundamentals as well as advanced concepts on understanding, implementing and testing Event-Driven Architecture systems.
Welcome (02:54)
What will you learn in this course? (02:39)
Who is the course for and prerequisites (01:11)
Introduction (01:48)
Coupling; The silent killer of distributed systems (06:47)
What is an event? (01:43)
Event-driven vs event-based (05:21)
Types of events (05:58)
Microservics vs event-driven architecture (04:03)
Event storming (05:28)
Building blocks of event-driven systems (05:01)
Stream, queue or bus. What’s the difference? (11:32)
Pros & Cons of Event-Driven Systems (05:51)
Introduction (01:30)
Responsibilites as a producer (03:37)
Publishing your first event (08:11)
Public vs private events (03:38)
The outbox pattern, part 1 (05:59)
The outbox pattern, part 2 (05:11)
Schema design and event structure (03:51)
Summary (03:39)
Introduction (02:29)
Responsibilities as a subscriber (06:41)
Build your first subscriber (08:32)
Naively implementing idempotency (05:54)
Handling errors (08:17)
Summary (01:00)
Introduction (02:17)
Demo Application Overview (07:34)
Storage-first API’s (08:46)
Technology choices for this course (04:44)
Front-end communication in an async world (12:05)
Thin events & smarter callbacks (06:32)
Idempotency - done better (08:26)
Versioning events and evolvability (07:53)
Handling failures (05:14)
Summary (00:52)
Introduction (01:03)
Orchestration vs choreography (07:46)
Orchestration in action (09:57)
Commands can be asynchronous too (09:54)
Reversing actions with the Saga pattern (05:41)
Technology choices for building orchestrators (05:13)
Trade-offs of Orchestration vs choreography (01:45)
Introduction (01:16)
Distributed tracing + context (13:07)
Semantic conventions for messaging (06:08)
Understanding dependent systems (03:54)
Span links vs trace propagation (05:31)
Are metrics important? (05:02)
Documenting your event-driven system (10:48)
Summary (02:47)
Introduction (01:41)
Challenges with testing EDA? (04:26)
Integration tests in practice (08:29)
Schema/Contract testing (08:10)
Testing for failure (06:23)
Testing for idempotency (07:59)
Summary (03:12)
Deploying event-driven systems (02:59)
EDA in legacy systems (01:48)
Next steps (00:59)
Course Info
Lifetime access
Add to Cart
James Eastham is a Senior Cloud Architect at Amazon Web Services and content creator. He has over 10 years experience in software, at all layers of the application stack.
He has worked in front-line support, database administration, backend development and now works with some of the biggest companies in the world architecting systems using AWS technologies.
James produces content on YouTube, focused around building applications with serverless technologies using .NET, Java & Rust.
© 2023 Dometrain. All rights reserved.