A course grounded in your services

Apache Kafka, from zero to interview-ready

Every concept anchored to real Kafka flows in conversationmgmt, notification & spike.

You're starting from zero and heading toward an interview. The plan below builds the concepts interviews actually test — the data model, consumer groups, delivery semantics, replication — and pins each one to code you already own, so an abstract idea lands on something familiar. Lessons are short: one win each. Read them in order.

How to use this Do one lesson, take its quiz from memory (no peeking), then skim the matching section of the cheat sheet. Come back a day later and re-take the quiz — spacing is what turns fluency into real retention. Stuck on anything? Ask me — I'm your teacher, not just the author.

Part 1 — Foundations available now

1 · What Kafka is & why it exists

The log, and pub/sub decoupling — told through your SendEmail flow.

ready

2 · Topics, partitions & offsets

The data model. Why partitions are the unit of ordering and parallelism.

ready

3 · Consumer groups & rebalancing

How work is split, how offsets are tracked, what happens when a consumer dies.

ready

Part 2 — The reliability core available now

The heart of most Kafka interviews. Do them in order — each builds on the last.

4 · Producers, keys & acks

How a write becomes durable; why our producer uses RequireOne.

ready

5 · Delivery semantics

At-most / at-least / exactly-once — and which our consumers get (strict vs AlwaysCommit()).

ready

6 · Idempotency & retries

At-least-once + our idempotentService ≈ exactly-once, without transactions.

ready

7 · Replication & ISR

Leaders, followers, and how Kafka survives a broker dying.

ready

8 · Retention vs compaction

Keeping data by age vs keeping the latest per key.

ready

Part 3 — Applied to your services available now

Synthesis: every earlier concept, composed in your real code. The interview payoff.

9 · Trace one event end-to-end

Produce → partition → group → handler → DB, through spike's email flow.

ready

10 · The priority-lane pattern

Kafka has no message priority — so why two topics + two groups in one pod.

ready

11 · Failure modes & the missing DLQ

What happens when X fails — for every X — and the DLQ we don't have.

ready

Part 4 — Senior Kafka practice new

The senior stretch — partition strategy, lag and rebalance judgment, schema evolution, retry/DLQ design, design review, and interview-grade answers.

12 · Partition strategy & hotspots

Choose partition shape from workload, not from habit.

new

13 · Rebalances, lag & backpressure

Read lag correctly and explain the real cost of unstable groups.

new

14 · Schema evolution & contract safety

Keep JSON event changes safe when producer and consumer deploy apart.

new

15 · Retries, retry topics & DLQ design

Design retry escalation and dead-letter behavior honestly.

new

16 · Reviewing Kafka designs

Judge durability, liveness, ordering, and hidden trade-offs like a senior engineer.

new

17 · Senior interview questions

High-signal Kafka questions with the right answer shape.

new

18 · Mock senior interview pack

A retrieval-first mock round with scoring and strong answer points.

new

Later / out of scope

Deliberately parked so they don't crowd the interview core: Kafka Streams & ksqlDB, Kafka Connect, and production cluster operations/tuning. We'll revisit if the mission shifts.

Reference shelf

Cheat sheet

Dense revision sheet + interview one-liners.

Glossary

The canonical vocabulary, opinionated.

Repo Kafka map

Ground truth: our topics, wrapper, semantics.

Resources

Trusted courses, docs, the free book, and senior Kafka design topics.

Senior backend playbook

The compressed version of the new senior part: hotspots, lag, contracts, retry/DLQ design, review judgment, and interview answers.

The original 11 lessons are built — and the course now has a senior extension. The last mile is retrieval, not reading: ask me to run a mixed mock interview across every lesson, and where you're solid I'll record it so we both know it's locked in. Or go deeper on anything that didn't click.