== Samples

There are several samples, most running on the RabbitMQ transport (so you need RabbitMQ running locally to test them).

To build the samples do:

```
   ./mvnw clean build
```


* `double` is an example of an aggregate application, the Source and Sink are combined into one single application.

* `dynamic-source` publishes messages to dynamically created destinations.

* `kinesis-produce-consume` An example application using spring-cloud-stream-binder-aws-kinesis. Presents a web endpoint to send Orders, these are placed on a Kinesis stream and then consumed by the application from that stream.

* `multi-io` shows how to use configure multiple input/output channels inside a single application.

* `multibinder-differentsystems` shows how an application could use same binder implementation but different configurations for its channels. In this case, a processor's input/output channels connect to same binder implementation but with two separate broker configurations.

* `multibinder` shows how an application could use multiple binders. In this case, the processor's input/output channels connect to different brokers using their own binder configurations.

* `non-self-contained-aggregate-app` shows how to write a non self-contained aggregate application.

* `reactive-processor-kafka` shows how to create a reactive Apache Kafka processor application.

* `rxjava-processor` shows how to create an RxJava processor application.

* `sink` A simple sink that logs the incoming payload. It has no options (but some could easily be added), and just logs incoming messages at INFO level.

* `source` A simple time source example. It has a "fixedDelay" option (in milliseconds) for the period between emitting messages.

* `stream-listener` shows how to use StreamListener support to enable message mapping and automatic type conversion.

* `test-embedded-kafka` is a sample that shows how to test with an embedded Apache Kafka broker.
We generally recommend testing with the https://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/#_testing[TestSupportBinder] but if you have a need for testing with an embedded broker, you can use the techniques in this sample.

* `transform` is a simple pass through logging transformer (just logs the incoming message and passes it on).

* `kstream` is a collection of applications that demonstrate the capabilities of the Spring Cloud Stream support for Kafka Streams

* `testing` is a bunch of applications and tests for them to demonstrate the capabilities of testing for the the Spring Cloud Stream applications.

