Monday
Room 4
09:00 - 17:00
(UTC+02)
2 Days
From Basics to Beyond: Building Production-Grade Messaging Systems
Most messaging systems don’t fail because they’re too complex. They fail because they stay simple for too long. Messaging tutorials make asynchronous systems look easy: put a message on a queue, subscribe to an event, scale it out. And for a while, it works. Then duplicates appear. Messages go missing. Workflows stall halfway through. And suddenly, "decoupled" systems are harder to reason about than the synchronous code they replaced.
This two-day workshop takes a deliberate journey from foundational messaging concepts to the patterns required for real-world, production-grade systems. We will start with the simplest possible asynchronous designs—queues, events, and pub/sub—and progressively evolve them as new problems emerge: duplicates, message loss, scaling limits, partial failures, and long-running workflows.
Instead of presenting messaging patterns as a checklist, this workshop shows why each pattern exists, what breaks without it, and what trade-offs it introduces. Every step forward is motivated by a concrete failure mode.
Over two days, we will grow a system from "Messages get sent" to: "Messages survive crashes, retries, scaling, and time"
Patterns explored include:
- Queues, events, and pub/sub fundamentals
- Recoverability
- Outbox and Idempotency
- Competing Consumers and back-pressure
- Retries, poison messages, and dead-letter queues
- Sagas for long-running workflows
- Scatter-Gather coordination
- Claim Check
- Messaging Bridges
But we will not stop there; we will also talk about building a UI for our system.
By the end of the workshop, you won’t just know these patterns — you will gain knowledge of when you actually need them, when you don't, and how to combine them without creating accidental complexity.
