Where: Győr, Hungary
Just a few days before the winter holidays with my family I got a call to host an Apache Kafka Workshop in Győr, Hungary. I’d never been in this city before and was ready to take on another Kafka workshop (after this and this workshops and some projects under my belt) so I (almost) immediately accepted the offer.
A new client, a new city, and a new agenda, but the content was “old”, i.e. Apache Kafka and Kafka Streams (with some very basic bits on Kafka Connect, KSQL, Avro and Schema Registry). I thought it’d be another opportunity to brush up the slides and my understanding of Apache Kafka.
The workshop quickly turned out a quite advanced journey into the uncharted areas of Kafka, mainly the internals of consumer groups, idempotent and transactional producers and log management. Since I’m not into slides that much, we started developing Kafka applications from the very first minute and used code to learn Kafka (wherever possible). We used the Kafka API javadoc and the official Kafka documentation most of the time. The participants really needed quite a lot of in-depth content during these 3 days so I felt a bit tired afterwards (and I was glad that it was just 3 days as my todo list would have grown up to an unmanageable size).
Just to give you some idea how “crazy” our ideas were, one of the exercises was to implement KStream.branch using KStream.transformValues (which would probably have been better with KStream.process, but I digress).
Conclusions (things to keep in mind next time):
- 3 days are the bare minimum (5 days preferred)
- More slides (even developers can enjoy some)
- Using Java 8? Fine, but you better know Lambda Expressions
- Can you do Scala? Things will be much easier (esp. when looking at the code of Apache Kafka)
- Make sure you know the audience (at least how many Kafka admins vs developers)
To be covered (to make the future workshops even more pro):
- Schema Registry
- Apache Avro
- Stateful Stream Processing (State Stores)
- Kafka Streams Testing (TopologyTestDriver, ProcessorTopologyTestDriver)
- Kafka Monitoring (Grafana, Prometheus)
- Kafka on Docker
- Exactly-Once Processing (EOS)
Let me know how to make the materials better. Leave the comments down below or drop me an email at firstname.lastname@example.org. Every feedback counts. Dzięki!