anchor.diff:  In the case of POJOs, a schema is inferred if the `spring.cloud.stream.schema.avro.dynamicSchemaGenerationEnabled` property is set to `true` (the default).
   
   .Schema Writer Resolution Process
  -image::schema_resolution.png[width=300,scaledwidth="75%",align="center"]
  +image::schema_resolution.png[width=800,scaledwidth="75%",align="center"]
   
   Ones a schema is obtained, the converter loads its metadata (version) from the remote server.
   First, it queries a local cache. If no result is found, it submits the data to the server, which replies with versioning information.
   The converter always caches the results to avoid the overhead of querying the Schema Server for every new message that needs to be serialized.
   
   .Schema Registration Process
  -image::registration.png[width=300,scaledwidth="75%",align="center"]
  +image::registration.png[width=800,scaledwidth="75%",align="center"]
   
   With the schema version information, the converter sets the `contentType` header of the message to carry the version information -- for example: `application/vnd.user.v1+avro`.
   
  
positive.code: This can be seen in the following figure, which shows a typical deployment for a set of interacting Spring Cloud Stream applications.
  
  .Spring Cloud Stream Publish-Subscribe
  image::SCSt-sensors.png[width=300,scaledwidth="50%"]
  
  Data reported by sensors to an HTTP endpoint is sent to a common destination named `raw-sensor-data`.
  From the destination, it is independently processed by a microservice application that computes time-windowed averages and by another microservice application that ingests the raw data into HDFS (Hadoop Distributed File System).
  
negative.code: 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"]
  
  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.
  