queues
Queues, Streams, Eventing
Letting parts of a system hand off work through message queues instead of waiting on each other — so things stay fast and survive a crash without losing a message.
Start track →Start from zero
Before the senior material: what a message queue even is, and the handful of words the rest of the track assumes you already know.Delivery guarantees: at-most-once, at-least-once, and the truth about exactly-once
Exactly-once delivery is impossible (Two Generals). At-least-once + idempotent consumer = effectively-once. Kafka transactions, SQS visibility timeout, and the outbox pattern are the production tools.Kafka partitions
How Kafka distributes messages across partitions, assigns consumer group members, and why partition count is a one-way door.RabbitMQ exchanges and routing
Direct, fanout, topic, and headers exchanges — how binding keys route messages and where each pattern fits in production.Message ordering guarantees
Why total order is expensive, how Kafka delivers per-partition FIFO, and the practical patterns for preserving order in distributed consumers.The transactional outbox pattern
Write a database row and a message atomically — how the outbox table, polling relay, and CDC eliminate the dual-write problem.Change-Data Capture
Reading the database write-ahead log to stream every row change as an event — Debezium, Postgres logical replication, and the operational gotchas.Designing UX for eventual consistency
Optimistic UI, conflict resolution, progress indicators, and retry affordances — making asynchronous systems feel responsive to users.Putting it together: event-driven service mesh
End-to-end design of an order-processing pipeline — outbox, Kafka topics, consumer groups, CDC, dead-letter queues, and observability.Build with this track
Guided projects that exercise what you learn here.
At-least-once job queue
Build a durable job queue on Postgres with visibility timeouts and idempotent consumers, so a crashed worker never drops a job.
Collaborative cursors
Show every connected user's live cursor and selection in a shared document, conflict-free, over WebSocket.
Job scheduler
A cron + backoff job runner with at-least-once delivery, idempotent handlers, and visibility timeouts — so no job is silently lost even when workers crash mid-execution.
Distributed Systems
What goes wrong when one system runs across many machines — and how they agree, stay available, and avoid making outages worse. Advanced; comfortable with one backend first.