This repository contains a collection of applications written using Spring Cloud Stream. All the applications are self contained.
They can be run against either Kafka or RabbitMQ middleware technologies.
You have the option of running the samples against local or Docker containerized versions of Kafka and Rabbit.
For convenience, docker-compose.yml
files are provided as part of each application wherever it is applicable.
For this reason, Docker Compose is required and it’s recommended to use the latest version.
These compose files bring up the middleware (kafka or Rabbit) and other necessary components for running each app.
If you bring up Kafka or RabbitMQ in Docker containers, please make sure that you bring them down while in the same sample directory.
You can read the README that is part of each sample and follow along the instructions to run them.
You can build the entire samples by going to the root of the repository and then do: ./mvnw clean package
However, the recommended approach to build them is to pick the sample that you are interested in and go to that particular app and follow the instructions there in the README for that app.
-
Basic StreamListener sample (Kafka and Rabbit)
-
Transformer sample (Kafka and Rabbit)
-
Reactive processor sample (Kafka and Rabbit)
-
Sensor average calculation using reactive patterns (Kafka and Rabbit)
-
Multi binder - Input with Kafka and output with Rabbit
-
Multi binder - Same binder type but different clusters (Kafka only, but can be extended for Rabbit as well)
A collection of various applications in stream processing using Spring Cloud Stream support for Kafka Streams binding.
-
Kafka Streams word count
-
Kafka Streams branching
-
Kafka Streams DLQ
-
Kafka Streams aggregation
-
Kafka Streams Interactive query basic
-
Kafka Streams Interactive query advanced
-
Kafka Streams product tracker
-
Kafka Streams KTable join
-
Kafka Streams and normal Kafka binder together