From Zero to Hero: Event-Driven Architecture

Learn everything you need to start using Event-Driven Architecture

About This Course

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.

Course Curriculum

5h 30m 9 sections
Welcome
02:54 Free preview
What will you learn in this course?
02:39 Free preview
Who is the course for and prerequisites
01:11 Free preview
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

Meet Your Instructor

James Eastham

James Eastham

James Eastham is a Serverless Developer Advocate at Datadog and a Microsoft MVP. He has over 10 years of software experience at all layers of the software development process and has spoken at conferences all over the world. He answered phones in front-line support, administered databases, and built SSIS packages, as well as developed cloud-native backends with serverless technologies. He spent time at AWS working with some of the biggest companies on the planet, migrating workloads from data centers into the cloud and modernizing in the process. James produces content on YouTube focused on architecting and building applications with serverless technologies using .NET and Rust. He also has a strong interest in and expertise in event-driven architecture and building more loosely coupled systems.

View all courses by James Eastham

What's New

Deep Dive: Solution Architecture
course

Deep Dive: Solution Architecture

Master solution architecture and turn business needs into scalable, maintainable systems.

Learn More
Migrating: ASP.NET Web APIs to ASP.NET Core
course

Migrating: ASP.NET Web APIs to ASP.NET Core

A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core.

Learn More
Getting Started: Caching in .NET
course

Getting Started: Caching in .NET

Let's make the hardest thing in programming easy for .NET software engineers.

Learn More
From Zero to Hero: Testing with xUnit in C#
course

From Zero to Hero: Testing with xUnit in C#

Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library.

Learn More
Create a ChatGPT Console AI Chatbot in C#
blog

Create a ChatGPT Console AI Chatbot in C#

This walkthrough is your hands-on entry point to create a basic C# console application that talks to ChatGPT using the OpenAI API.

Learn More