This module streams records of type <String, KafkaUser>
from the USER_TOPIC
and joins them by nationality with records of type <String, KafkaCountry>
from the COUNTRY_TOPIC
.
It demonstrates the following:
- How to use the Kafka Streams DSL to join a
KStream
with aKTable
usingleftJoin()
,selectKey()
andpeek()
. - Unit testing using the Topology Test Driver.
To compile and run this demo, you’ll need:
- Java 21
- Maven
- Docker
To run the application manually:
- Start a Confluent Platform in a Docker environment.
- Produce records of type
<String, KafkaCountry>
to theCOUNTRY_TOPIC
. You can use the Producer Country for this. - Produce records of type
<String, KafkaUser>
to theUSER_TOPIC
. You can use the Producer User for this. - Start the Kafka Streams application.
Alternatively, to run the application with Docker, use the following command:
docker-compose up -d
This command will start the following services in Docker:
- 1 Kafka Broker (KRaft mode)
- 1 Schema Registry
- 1 Control Center
- 1 Producer Country
- 1 Producer User
- 1 Kafka Streams Left Loin Stream Table