kafka-workshop

Apache Kafka for Scala/Java Developers

2-Day Agenda


Audience


Covered

This workshop stays at the producer/consumer client level.

Just enough broker/topic theory to build correct, reliable Kafka clients.


Development Setup

Broker: apache/kafka:4.3.1 via Docker or standalone.

Client library: kafka-clients

Scala 2.13 or 3.x — sbt defaults are fine.


Out of Scope


Theory vs. practice

Roughly 30% theory / 70% hands-on, delivered as short cycles rather than one long lecture per day: 20–30 min of theory immediately followed by a 30–60 min exercise that applies it. Concepts land better when there’s code running within minutes of hearing about them, and it keeps energy up over two full days. Timings below are guidance, not a strict clock — leave room to run long on whichever exercise the group struggles with; something has to give, and it’s usually the stretch goals at the end of each day.


Day 1 — Kafka Fundamentals & Producers

~1h40 theory / ~2h15 practice (~3h55 content)

plus the lunch break and shorter Q&A/coffee breaks.


Before the break — Fundamentals

# Block Type ~Duration
1 Kafka architecture: brokers, topics, partitions, replication, ISR Theory 30 min
2 Exercise 01: Running Kafka with Docker Practice 15 min
3 Topics in depth: partitions & replication factor, retention, CLI tooling Theory 20 min
4 Exercise 02: Topics & CLI Tools Practice 30 min

Subtotal: ~50 min theory / ~45 min practice (~1h35).


🍽️ Lunch Break (Day 1) — 1 hour


After the break — Producers

# Block Type ~Duration
5 Producer API: ProducerRecord, partitioning, serializers, batching Theory 30 min
6 Exercise 03: Your First Kafka Producer Practice 30 min
7 Producer reliability: acks, retries, idempotence, callbacks, custom partitioners Theory 20 min
8 Exercise 04: Producer Reliability & Custom Partitioning Practice 45 min

Subtotal: ~50 min theory / ~1h30 practice (~2h20).


Day 2 — Consumers, Offsets & Testing

~1h55 theory / ~3h practice (~5h15 content, excl. stretch)

plus the lunch break and shorter Q&A/coffee breaks.


Before the break — Consumers & Consumer Groups

# Block Type ~Duration
1 Consumer API: the poll loop, deserializers, consumer configuration Theory 30 min
2 Exercise 05: Your First Kafka Consumer Practice 30 min
3 Consumer groups & partition rebalancing (eager vs. cooperative-sticky) Theory 25 min
4 Exercise 06: Consumer Groups in Action Practice 30 min

Subtotal: ~55 min theory / ~1h15 practice (~2h10).


Bonus, if time allows

Exercise 01b: Multi-Broker Kafka Cluster with Docker Compose


🍽️ Lunch Break (Day 2) — 1 hour


After the break — Offsets, Serialization & Testing

# Block Type ~Duration
5 Offset management: auto-commit vs. manual commit, delivery semantics Theory 20 min
6 Exercise 07: Manual Offset Commits Practice 40 min
7 Serialization beyond strings: custom (de)serializers for case classes Theory 20 min
8 Exercise 08: Custom Serialization Practice 40 min
9 Testing Kafka applications: embedded brokers vs. Testcontainers Theory 20 min
10 Exercise 09: Integration Testing with Testcontainers Practice 45 min

Subtotal: ~1h00 theory / ~2h05 practice (~3h05, excl. stretch).


Deliberately Left Out