/spring-boot-kafka-quickstarts

Code samples around Spring Boot and Kafka.

Primary LanguageJavaApache License 2.0Apache-2.0

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 17
  • Maven
  • Docker

Quickstarts list

Producers

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

Consumers

Module Library Main Concept Additional Content
Avro Generic Kafka Clients Generic Avro Mock consumer
Avro Specific Kafka Clients Specific Avro 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
Transactional Kafka Clients Isolation level

Streams

Source

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

Stateless

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

Aggregate

Module Library Main Concept Additional Content
Aggregate Kafka Streams aggregate() groupByKey(), selectKey(), toStream(), peek(), Topology Test Driver
Aggregate Tumbling Window Kafka Streams aggregate(), windowedBy() groupByKey(), selectKey(), toStream(), peek(), Topology Test Driver
Aggregate Hopping Window Kafka Streams aggregate(), windowedBy().advanceBy() groupByKey(), selectKey(), toStream(), peek(), Topology Test Driver
Count Kafka Streams count() groupBy(), toStream(), peek(), Topology Test Driver
Reduce Kafka Streams reduce() groupBy(), toStream(), peek(), Topology Test Driver

Join

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

Windowing

Module Library Main Concept
Tumbling Window Kafka Streams windowedBy()
Hopping Window Kafka Streams windowedBy().advanceBy()
Sliding Window Kafka Streams JoinWindows

Processor

Module Library Main Concept Additional Content
Process Kafka Streams process(), Processor API State Store, Headers, Topology Test Driver
Process values Kafka Streams processValues(), Processor API Timestamped State Store, Headers, Topology Test Driver