The first 200 students can use code LAUNCH20 to get 20% off our new 5 courses Deep Dive: Blazor, From Zero to Hero: Event-Driven Architecture, Getting Started: ASP.NET Core, Getting Started: Event Sourcing and Getting Started: Azure for Developers

From Zero to Hero: Event-Driven Architecture

Learn everything you need to start using Event-Driven Architecture

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.

Curriculum

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

Level:
From Zero to Hero
Duration:
5h 30m
Rating (New):
star

Lifetime access

Add to Cart
Dometrain Pro

Want access to all of our courses? Subscribe to Dometrain Pro!

Try it for free!

About the Author

author_img

James Eastham

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.

More courses by James Eastham