Spring Cloud Stream Reference Guide

Sabby Anandan, Marius Bogoevici, Eric Bottard, Mark Fisher, Ilayaperumal Gopinathan, Gunnar Hillert, Mark Pollack, Patrick Peralta, Glenn Renfro, Thomas Risberg, Dave Syer, David Turanski, Janne Valkealahti, Benjamin Klein

1.0.1.BUILD-SNAPSHOT

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.


Table of Contents

I. Reference Guide
1. Introducing Spring Cloud Stream
2. Main Concepts
2.1. Application Model
2.1.1. Fat JAR
2.2. The Binder Abstraction
2.3. Persistent Publish-Subscribe Support
2.4. Consumer Groups
2.4.1. Durability
2.5. Partitioning Support
3. Programming Model
3.1. Declaring and Binding Channels
3.1.1. Triggering Binding Via @EnableBinding
3.1.2. @Input and @Output
Customizing Channel Names
Source, Sink, and Processor
3.1.3. Accessing Bound Channels
Injecting the Bound Interfaces
Injecting Channels Directly
3.1.4. Producing and Consuming Messages
Native Spring Integration Support
Using @StreamListener for Automatic Content Type Handling
3.1.5. Aggregation
3.1.6. RxJava support
4. Binders
4.1. Producers and Consumers
4.2. Binder SPI
4.3. Binder Detection
4.3.1. Classpath Detection
4.4. Multiple Binders on the Classpath
4.5. Connecting to Multiple Systems
4.6. Binder configuration properties
4.7. Implementation strategies
4.7.1. Kafka Binder
4.7.2. RabbitMQ Binder
5. Configuration Options
5.1. Spring Cloud Stream Properties
5.2. Binding Properties
5.2.1. Properties for Use of Spring Cloud Stream
5.2.2. Consumer properties
5.2.3. Producer Properties
6. Binder-Specific Configuration
6.1. Rabbit-Specific Settings
6.1.1. RabbitMQ Binder Properties
6.1.2. RabbitMQ Consumer Properties
6.1.3. Rabbit Producer Properties
6.2. Kafka-Specific Settings
6.2.1. Kafka Binder Properties
6.2.2. Kafka Consumer Properties
6.2.3. Kafka Producer Properties
7. Content Type and Transformation
7.1. MIME types
7.2. MIME types and Java types
7.3. `@StreamListener and Message Conversion
8. Inter-Application Communication
8.1. Connecting Multiple Application Instances
8.2. Instance Index and Instance Count
8.3. Partitioning
8.3.1. Configuring Output Bindings for Partitioning
Configuring Input Bindings for Partitioning
9. Testing
10. Health Indicator
11. Samples
12. Getting Started
II. Appendices
A. Building
A.1. Basic Compile and Test
A.2. Documentation
A.3. Working with the code
A.3.1. Importing into eclipse with m2eclipse
A.3.2. Importing into eclipse without m2eclipse
A.4. Sign the Contributor License Agreement
A.5. Code Conventions and Housekeeping