anchor.diff:  $ docker-compose -f docker-compose-mysql-apicurio.yaml up -d --build
   
   # Start the connector
  -curl -i -X POST -H "Accept:application/json" -H  "Content-Type:application/json" http://localhost:8083/connectors/ -d @register-mysql-apicurio-converter-avro.json
  +curl -i -X POST -H "Accept:application/json" \
  +    -H  "Content-Type:application/json" \
  +    http://localhost:8083/connectors/ \
  +    -d @register-mysql-apicurio-converter-avro.json
   
   # Read content of the first message
  -$ docker run --rm --tty   --network tutorial_default debezium/tooling bash -c 'kafkacat -b kafka:9092 -C -o beginning -q -t dbserver1.inventory.customers -c 1 -s avro -r http://apicurio:8080/ccompat | jq .'
  +$ docker run --rm --tty \
  +    --network tutorial_default debezium/tooling bash -c \
  +    'kafkacat -b kafka:9092 -C -o beginning -q -t dbserver1.inventory.customers -c 1 -s avro -r http://apicurio:8080/ccompat | jq .'
   ----
   
   We introduced options `-s avro` and `-r http://apicurio:8080/ccompat` to declare that we are using Avro format and location of the Apicurio registry endpoint.
  -Please note that the endpoint points not to the native API but to the compatibility layer so even if `kafkacat` is not yet aware of the new API it can easily interoperate with Apicurio.
  +Please note that the endpoint does not reference the native API, but the compatibility layer so even if `kafkacat` is not yet aware of the new API, it can easily interoperate with Apicurio.
   
   The resulting message should look like:
   
  
positive.code: 
  [source,bash]
  ----
  $ docker run --rm --tty   --network tutorial_default debezium/tooling bash -c 'http http://apicurio:8080/ids/64 | jq .'
  $ docker run --rm --tty   --network tutorial_default debezium/tooling bash -c 'http http://apicurio:8080/artifacts/dbserver1.inventory.customers-value | jq .'
  ----
  
  results in the same schema description:
  
negative.code: 
  == Registry
  
  Then there is the third approach that combines strong points of the first two, while it removes their drawbacks at the cost of introducing a new component - a registry - that stores and versions message schemas.
  
  There are multiple schema registry implementations available;
  in the following we're going to focus on the https://github.com/Apicurio/apicurio-registry[Apicurio Registry],
  which is an open-source (Apache license 2.0) API and schema registry.
  The project provides not only the registry itself, but also client libraries and tight integration with Apache Kafka and Kafka Connect in form of serializers and converters.
  
  Apicurio enables Debezium and consumers to exchange messages whose schema is stored in the registry and pass only a reference to the schema in the messages themselves.
  A the structure of captured source tables and thus message schemas evolve, the registry creates new versions of the schemas, too, so not only current but also historical schemas are available.
  
  Apicurio provides multiple serialization formats out-of-the-box:
  
  * JSON with externalized schema support
  * https://avro.apache.org/[Apache Avro]
  * https://developers.google.com/protocol-buffers[Protocol Buffers]
  
  Every serializer and deserializer knows how to automatically interact with the Apicurio API so the consumer is isolated from it as an implementation detail.
  The only information necessary is the location of the registry.
  
  Apicurio also provides API compatibility layers with the Confluent Schema Registry and IBM Schema Registry.
  This is a very useful feature as it enables the use of 3rd party tools like https://github.com/edenhill/kafkacat[kafkacat], even if they are not yet aware of the native API.
  
  === JSON Converter
  
  