Free through lesson 3

Messaging & Microservices for Beginners

From spotting the real limits of a monolith, to drawing boundaries, to the armor every synchronous call needs (timeouts, retries, circuit breakers), Kafka topics and offsets, sagas and the outbox, and finally the decisions "don't split" and "go back to the monolith." Over 30 lessons, you'll get to the point where you can estimate, in numbers, what gets harder when you split. Every output shown comes from actually running Kafka 4.3.1 and Node.js 26.9 processes and measuring them.

Curriculum

The 30 lessons are grouped into 6 chapters. Working through them in order from chapter 1 is recommended, but feel free to jump to whatever interests you. * This course has more prerequisites than any other course on this site. Docker for Beginners is required, and it assumes you've finished API Design for Beginners, Redis & NoSQL for Beginners, and Monitoring & Observability for Beginners. * Lessons that run multiple services or a broker can't run in the browser, so try them with Node.js and Kafka on your own machine. Short snippets that only check the decision logic can be run right in the browser.

Chapter 1 — What Happens When You Split (lessons 1–5)

First, we look at all the work that appears the moment you split. By the end, you'll have the evidence to say with confidence, "We're better off not splitting."

Chapter 2 — Connecting Synchronously (lessons 6–10)

We add, one at a time, the armor you always need when calling a service directly: timeouts, retries, and circuit breakers. By the end, you'll have built a setup where a single failure doesn't spread to everything.

Chapter 3 — Connecting Asynchronously (lessons 11–18)

We stop calling and switch to streaming events instead. You'll start Kafka on your machine and see topics, partitions, offsets, and consumer groups in action.

Chapter 4 — Keeping Data Consistent (lessons 19–24)

Once the databases are split, you lose both transactions and JOINs. We plug those holes one by one with eventual consistency, sagas, idempotency, and the outbox.

Chapter 5 — Operations (lessons 25–28)

You'll learn to isolate failures across split services and ship them in an order that doesn't break anything. Finally, you'll change the shape of messages safely.

Chapter 6 — Making the Call (lessons 29–30)

We put numbers on the cost of splitting and estimate it. Finally, we face the option of "going back to the monolith" head-on and wrap up the course.

Once you've finished all 30 lessons, head to the place where your split services actually run: Kubernetes for Beginners. A membership unlocks every course.