anchor.diff:  Partitioning can thus be used whether the broker itself is naturally partitioned (for example, Kafka) or not (for example, RabbitMQ).
   
   .Spring Cloud Stream Partitioning
  -image::SCSt-partitioning.png[width=800,scaledwidth="75%",align="center"]
  +image::{github-raw}/docs/src/main/asciidoc/images/SCSt-partitioning.png[width=800,scaledwidth="75%",align="center"]
   
   Partitioning is a critical concept in stateful processing, where it is critical (for either performance or consistency reasons) to ensure that all related data is processed together.
   For example, in the time-windowed average calculation example, it is important that all measurements from any given sensor are processed by the same application instance.
  
positive.code: There are two types of application-level error handling. Errors can be handled at each binding subscription or a global handler can handle all the binding subscription errors. Let's review the details.
  
  .A Spring Cloud Stream Sink Application with Custom and Global Error Handlers
  image::custom_vs_global_error_channels.png[width=800,scaledwidth="75%",align="center"]
  
  For each input binding, Spring Cloud Stream creates a dedicated error channel with the following semantics `<destinationName>.errors`.
  
  
negative.code: For the consumers shown in the following figure, this property would be set as `spring.cloud.stream.bindings.<channelName>.group=hdfsWrite` or `spring.cloud.stream.bindings.<channelName>.group=average`.
  
  .Spring Cloud Stream Consumer Groups
  image::{github-raw}/docs/src/main/asciidoc/images/SCSt-groups.png[width=800,scaledwidth="75%",align="center"]
  
  All groups that subscribe to a given destination receive a copy of published data, but only one member of each group receives a given message from that destination.
  By default, when a group is not specified, Spring Cloud Stream assigns the application to an anonymous and independent single-member consumer group that is in a publish-subscribe relationship with all other consumer groups.
  