Kafka Development

Kafka Development

This course provides a technical introduction to Kafka development. The course describes the design goals underpinning Kafka, and explains key Kafka concepts such as partitions, replication, and consumer groups. The course then leads you on a detailed tour of the Kafka APIs in Java: you’ll learn how to publish and consume data to Kafka topics; how to manage the Kafka environment via the AdminClient API; and how to implement a stream-processing topology via the Streams API.


2 days


  • Solid programming experience in Java or a similar language

What you'll learn

  • Understanding Kafka design goals and architecture
  • Setting up a development environment for Kafka
  • Using the Kafka Producer and Consumer APIs
  • Using the Kafka AdminClient API
  • Using the Streams API
  • Using Kafka in Spring Boot

Course details

Introduction to Kafka

  • What is Kafka
  • Kafka design goals and architecture
  • Getting Kafka

Understanding Kafka Concepts and Terminology

  • Topics and partitions
  • Partitions and replication
  • Consumers
  • Kafka commands

Using the Kafka Producer API

  • Overview
  • Defining a simple producer
  • Defining a custom partitioner
  • Defining a custom serializer
  • Defining a custom interceptor

Using the Kafka Consumer API

  • Overview
  • Defining a single consumer
  • Defining multiple consumers and groups
  • Defining a custom deserializer
  • Defining a custom interceptor

Using the Kafka AdminClient API

  • Overview
  • Getting cluster config information
  • Getting topic config information
  • Creating topics

Using the Streams API

  • Overview
  • Defining a topology
  • Special types of processors in a topology
  • Understanding the Kafka Streams API
  • Defining a minimal topology
  • Additional techniques

Using Kafka in Spring Boot

  • Overview
  • Spring Boot dependencies for Kafka
  • Publishing messages
  • Consuming messages