View all workshops

Apache Kafka Foundation

Trainer(s): Alexei Bratuhin and/or Sascha Selzer, duration: 2 days (2x 8 hours)

Introduction
In this training, candidates are expected to have experience with Apache Kafka and they have programmed Kafka consumers and producers before. Note: All examples and exercises are programmed with Spring Kafka. We will practice with messaging delivery guarantees and investigate ordering in Kafka. We also learn how to detect, prevent and handle errors that can occur when sending messages with Kafka. And learn the basics of Kafka Streams.

Detailed description
This training starts with a short review of what producers and consumers are and their most important properties. Then we will continue to discuss Kafka’s delivery guarantees: at most once, at least once, exactly once and look at message ordering within Kafka. We will do an exercise in which we program the producer and consumer so that a message arrives exactly once and in the order in which the message was sent. After that we will discuss best practices with rebalancing partitions. Next topic of the day is error management. We will look at which kind of errors can occur and what you can do when errors occur. We practice different retry strategies in Spring Kafka Consumer. We will also look at which Kafka metrics are handy to monitor and how to trace messages. Last topic of the day is Kafka streams. We will learn the basic concepts of stream processing and look at the Kafka streaming API. As exercise we will create a Kafka Stream Application.

Target audience
The training is intended for Java developers who have already followed the Kafka Essentials course or already have a lot of experience working with Kafka. This is a hands-on training aimed at developers. A lot of attention is paid to creating and studying code examples of Kafka Clients that you can use when working on a project with Apache Kafka.

Learning goals

  • Know about and practice with Kafka’s delivery and ordering guarantees
  • How to prevent problems with rebalancing partitions
  • Detect, handle and prevent errors in producers and consumers
  • Create a Kafka Streams application

Skills acquired

  • Knowledge about Kafka delivery and ordering guarantees
  • Program and configure Spring Kafka clients such that a message is delivered exactly once in a guaranteed order
  • Best practices rebalancing partitions
  • How to design for errors in producers and consumers
  • Know which Kafka metrics are handy to monitor
  • Knowledge about and programming experience with Kafka Streams

Topics

  • Short summary what are the important characteristics of producers and consumers
  • Delivery guarantees: at most once, at least once, exactly once
  • Ordering guarantees: in what order are messages processed
  • Rebalancing
  • Error management
  • Monitoring and tracing messages
  • Kafka Streams

Training outline

Day 1: Our Apache Kafka Essentials training.
Day 2:

Kafka Basics: Producers, Consumers: +/- 0.5h

  • Brief review of what producers and consumers are and their most important properties
  • Setup local environment for exercises

Delivery Semantics: +/- 2h

  • Discuss delivery guarantees Producer
  • Discuss ordering guarantees Producer
  • Programming exercises about delivery and ordering guarantees with Spring Kafka Producer
  • Discuss delivery guarantees Consumer
  • Discuss ordering guarantees Consumer
  • Programming exercises about delivery and ordering guarantees with Spring Kafka Consumer

Rebalancing +/- 0.5h

  • Consumer groups and the rebalance protocol
  • Pitfalls

Error Management: +/- 1,5h

  • Producer errors and retry strategies
  • Consumer errors and retry strategies
  • Dead letter topic
  • Programming exercises about retry strategies and dead letter topics with Spring Kafka Consumer
  • Monitoring and Tracing messages

Kafka Streams: +/ 3h

  • Introduction Stream Processing
  • Kafka Stream API
  • Stateless vs Stateful streaming
  • K tables
  • Windowing

Prerequisites

  • Experience with Java programming
  • Experience with programming Kafka Producers and Consumers
  • Basic knowledge of Apache Kafka
  • Good to have experience with Maven, Docker and Spring Boot

Provided training material
After doing the training you will have good code examples that you can use when starting an Apache Kafka project. After the training you will receive possible solutions of the exercises and the slides in PDF format.

About the trainers

Alexei is a senior software engineer at OpenValue with over 15 years of experience in Java development and consulting. He specializes in building cloud-native applications and microservices using Quarkus, Spring Boot, and MicroProfile. Throughout his career, he has held various technical leadership roles including dev lead, technical architect, and DevOps engineer across multiple domains such as information security, telecommunications, and automotive.

As an active contributor to the Quarkus ecosystem, Alexei has made contributions to several open-source projects including dbunit, database-rider, junit5-kubernetes, smallrye-reactive-messaging, and Quarkus itself. He is passionate about optimizing development workflows and helping teams adopt best practices in continuous delivery, test-driven development, and clean code.

Alexei brings a wealth of practical experience to his training sessions, drawing from his extensive background in both backend and frontend development. His teaching approach focuses on practical, real-world scenarios and helping developers create maintainable, high-quality applications with Quarkus.

Sascha Selzer is a Senior Software Engineer at OpenValue. He specializes in:

  • Backend architecture (especially JVM-based technologies)
  • Cloud-native infrastructure and container technologies
  • Continuous delivery and deployment strategies
  • Monitoring and observability (e.g., tracing)
  • Microservices and DevOps practices

He has extensive experience in training and is an iSAQB trainer. He also enjoys speaking at conferences and publishing articles.

What others say about this training

We had a great hands-on Kafka course which directly translated into practical suggestions for an ongoing project we were working on. Very complete and detailed information. Great experience in all.

Practical details

Standard pricing for this training: EUR 1295,- ex VAT per attendee.
Please contact us for pricing for tailored content and for in house group trainings.

Trainings can be given in one of our offices (Utrecht, Amsterdam, Rotterdam, Arnhem, Munich, Dusseldorf, Vienna, Zurich), on site at a client location, or (in some cases) remote. Training content can be tailored to meet your specific requirements.

Want to enroll or have a question? Contact us via mail at info@openvalue.training, give us a call at +31-85-0606886 or use the form below.

Please complete this required field.