JAVA-KAFKA

Kafka for Java programmers

Form of participation
Form of training
Length of training
  • 2 day (2×12 Lessons)
  • daily 9:00 - 17:00
Available languages
  • Hungarian
Dates

Training price

235 000 Ft
+ VAT/person
Please choose the date and form of participation!
Would you like a custom made solution, group training on this topic?
Find out more about our customised training services here.

Description

This Java and Apache Kafka course provides a comprehensive introduction to the world of modern, distributed messaging and data streaming. Participants will learn how to use Kafka to build high-performance, fault-tolerant systems, including the producer and consumer APIs, partitioning management, replication, and exactly-once message processing. Throughout the course, participants will master the basics of Kafka, as well as advanced topics like Kafka Streams, Schema Registry, Spring for Apache Kafka, and Spring Cloud Stream. This course is ideal for developers and architects who want to efficiently handle real-time data processing.

Outline

  • Introduction to the world of Kafka
    • What is Apache Kafka?
    • Main components of Kafka (Broker, Topic, Partition, Producer, Consumer, Consumer Group)
    • Maximal data security, Topic Durability, Topic Replication, Acknowledgements, Log Retention, Flush Policy
    • Comparison of Kafka with other messaging systems (RabbitMQ, ActiveMQ, etc.)
    • Use cases (real-time streaming, event-driven architectures, etc.)
  • Kafka installation and configuration
    • Downloading and running Kafka locally
    • Running Kafka with Docker, Docker Compose
    • Role and configuration of Zookeeper
    • KRaft
    • Kafka configuration parameters
    • Basic Kafka CLI commands (creating topics, sending/receiving messages)
  • Development of Producer and Consumer using Java Client for Apache Kafka
    • Using the Producer API
    • Serialization, deserialization, JSON, Avro, Schema Registry
    • ProducerRecord and Serializers
    • Partitioning and using keys
    • Asynchronous and synchronous sending
    • Using the Consumer API
    • Polling vs. event-driven processing
    • Consumer group
    • Consumer Incremental Cooperative Rebalance & Static Group Membership
    • Offset management and commit strategies
    • Graceful shutdown
  • Kafka Streams – real-time data processing
    • What is Kafka Streams?
    • Basic concepts (KStream, KTable, Stateless vs. Stateful processing)
    • Basic transformation operations (map, filter, groupBy, reduce)
    • Windowing and aggregation
    • Using custom Serializer/Deserializer (Serde)
  • Spring for Apache Kafka
    • @KafkaListener and KafkaTemplate usage
    • Idempotent Kafka Producer and Consumer
    • Serialization, deserialization, JSON, Avro, Schema Registry
    • Message headers
    • Stopping/starting listener containers
    • Filtering
    • Offset management
    • Interceptors
    • Handling transactions with Kafka
    • Retry and exception/error handling
    • Using Dead Letter Queue (DLQ) for handling faulty messages
    • Non-Blocking Retries
    • Integration testing
    • Monitoring
  • Spring Cloud Stream
  • Kafka Admin API and Monitoring
    • Programmatically modifying Kafka topics and their configurations
    • Prometheus, Grafana monitoring
  • Kafka Security (TLS, ACL, SASL)
Outline (PDF)

Prerequisites

Stable knowledge of the Java programming language is required.

The prerequisite is the completion of the Java SE Basics (JAVA-BSC) and Java SE Advanced (JAVA-ADV) courses, or practical knowledge of their materials.

Since some of the course materials are in English, basic reading-level English proficiency is required. The training is in Hungarian, based on Hungarian slides.