This workshop stays at the producer/consumer client level.
Just enough broker/topic theory to build correct, reliable Kafka clients.
Broker: apache/kafka:4.3.1 via Docker or standalone.
Client library: kafka-clients
Scala 2.13 or 3.x — sbt defaults are fine.
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.
~1h40 theory / ~2h15 practice (~3h55 content)
plus the lunch break and shorter Q&A/coffee breaks.
| # | 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).
| # | 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).
~1h55 theory / ~3h practice (~5h15 content, excl. stretch)
plus the lunch break and shorter Q&A/coffee breaks.
| # | 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).
Exercise 01b: Multi-Broker Kafka Cluster with Docker Compose
| # | 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).