Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
February 23, 2016 11:11
March 21, 2019 15:19
March 21, 2019 15:17
March 21, 2019 15:21
March 21, 2019 15:21

Spring Cloud Stream Sample Applications

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.

Following is the list of various sample applications provided

Source samples

  • Source with dynamic destinations (Kafka and Rabbit)

Processor samples

  • 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 IO sample

  • Sample with multiple input/output bindings (Kafka and Rabbit)

Multi Binder samples

  • 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)


  • Kinesis produce consume sample

Kafka Streams samples

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

Testing samples

  • Sample with embedded Kafka

  • General testing patterns in Spring Cloud Stream

Function-based stream app samples

Contains samples using the re-architected stream-applications and base functions included in


Samples for Spring Cloud Stream



Code of conduct

Security policy





No releases published


No packages published