Skip to content

Latest commit

 

History

History

kafka-streams-aggregate-sliding-window

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Kafka Streams Aggregate Sliding Window

This module streams records of type <String, KafkaUser> from the USER_TOPIC and aggregates users by their last name using a 5-minute sliding window and a 1-minute grace period for delayed records. It demonstrates the following:

  • Use of the Kafka Streams DSL, including aggregate(), windowedBy(), groupByKey(), selectKey(), toStream() and peek().
  • Unit testing using the Topology Test Driver.

topology.png

Prerequisites

To compile and run this demo, you’ll need:

  • Java 21
  • Maven
  • Docker

Running the Application

To run the application manually:

  • Start a Confluent Platform in a Docker environment.
  • Produce records of type <String, KafkaUser> to the USER_TOPIC. You can use the producer user for this.
  • Start the Kafka Streams application.

To run the application in Docker, use the following command:

docker-compose up -d

This command starts the following services in Docker:

  • 1 Kafka broker (KRaft mode)
  • 1 Schema Registry
  • 1 Control Center
  • 1 Producer User
  • 1 Kafka Streams Aggregate Sliding Window