title: How does the Confluent platform enforce schemas in Kafka?
body: <p>From time to time I come across Confluent's Schema Registry and its schema validation functionality.</p>
  <p>According to the documentation this works by setting <code>confluent.value.schema.validation</code> or <code>confluent.key.schema.validation</code> on a topic to <code>true</code>. If I now use a tool like kafka-console-producer to send an invalid message, the broker rejects this message.</p>
  <p>How does that actually work? After all, kafka-console-producer is part of Apache Kafka and not (directly) related to Confluent.</p>
  <p>I'm neither aware of any Kafka plugin API that would support something like that nor could I find anything at Confluent's github page. I guess Confluent Platform somehow hides intermediate topics to enable this, but then I still don't know how they trigger an error in kafka-console-producer.</p>