Skip to content

loicgreffier/spring-boot-kafka-quickstarts

Repository files navigation

Spring Boot and Kafka quickstarts

GitHub Build GitHub Stars GitHub Watch Docker Pulls Docker Stars

This repository contains a set of code samples around Kafka Clients, Kafka Streams and Spring Boot.

Requirements

  • Java 21
  • Maven
  • Docker

Quickstarts list

Producers

Module Library Main Concept Additional Content
Avro Generic Kafka Clients Generic Avro production Mock producer
Avro Specific Kafka Clients Specific Avro production Mock producer
Simple Kafka Clients String production Headers, Mock producer
Transaction Kafka Clients Transaction Mock producer

Consumers

Module Library Main Concept Additional Content
Avro Generic Kafka Clients Generic Avro consumption Mock consumer
Avro Specific Kafka Clients Specific Avro consumption Mock consumer
Circuit breaker Kafka Clients Deserialization/poison pill error handling Mock consumer
Retry external system Kafka Clients External system interfacing with strong retry mechanism Mock consumer
Simple Kafka Clients String consumption Headers, Mock consumer
Transaction Kafka Clients Isolation level

Kafka Streams

Source

Module Library DSL
Global table Kafka Streams globalTable()
Table Kafka Streams table()
Stream Kafka Streams stream()

Stateless

Module Library DSL Additional Content
Branch Kafka Streams branch() Topology Test Driver
Cogroup Kafka Streams cogroup() Topology Test Driver
Filter Kafka Streams filter(), filterNot() Topology Test Driver
Flatmap Kafka Streams flatMap() Topology Test Driver
Flatmap values Kafka Streams flatMapValues() Topology Test Driver
Foreach Kafka Streams foreach()
Map Kafka Streams map() Topology Test Driver
Map values Kafka Streams mapValues() Topology Test Driver
Merge Kafka Streams merge() Topology Test Driver
Print Kafka Streams print()
Repartition Kafka Streams repartition() Topology Test Driver
Select key Kafka Streams selectKey() Topology Test Driver

Aggregate

Module Library DSL Additional Content
Aggregate Kafka Streams aggregate() Topology Test Driver
Aggregate Tumbling Window Kafka Streams aggregate(), windowedBy() Grace period, Topology Test Driver
Aggregate Hopping Window Kafka Streams aggregate(), windowedBy().advanceBy() Grace period, Topology Test Driver
Average Kafka Streams aggregate() Topology Test Driver
Count Kafka Streams count() Topology Test Driver
Reduce Kafka Streams reduce() Topology Test Driver

Join

Module Library DSL Additional Content
Join Stream-Global Table Kafka Streams join() between KStream and GlobalKTable Topology Test Driver
Join Stream-Stream Kafka Streams join() between KStream and KStream, JoinWindows Topology Test Driver
Join Stream-Table Kafka Streams join() between KStream and KTable Topology Test Driver
Left join Stream-Global Table Kafka Streams leftJoin() between KStream and GlobalKTable Topology Test Driver
Left join Stream-Stream Kafka Streams leftJoin() between KStream and KStream, JoinWindows Topology Test Driver
Left join Stream-Table Kafka Streams leftJoin() between KStream and KTable Topology Test Driver
Outer join Stream-Stream Kafka Streams outerJoin() between KStream and KStream, JoinWindows Topology Test Driver

Windowing

Module Library DSL Additional Content
Tumbling Window Kafka Streams windowedBy() Grace period, Topology Test Driver
Hopping Window Kafka Streams windowedBy().advanceBy() Grace period, Topology Test Driver
Sliding Window Kafka Streams JoinWindows Topology Test Driver

Processor

Module Library DSL Additional Content
Process Kafka Streams process() Headers, Topology Test Driver
Process values Kafka Streams processValues() Headers, Topology Test Driver
Schedule Kafka Streams process(), schedule() Timestamped key-value store, Wall clock time, Stream time, Topology Test Driver
Schedule Store Cleanup Kafka Streams process(), addStateStore(), schedule() Key-value store, Stream time, Topology Test Driver