Validation confirms that the record carries a schema ID and that the ID maps to a registered schema
under the subject the naming strategy derives. It does not inspect the payload or verify that the
data matches the schema.
Enable validation on a topic
Validation is off by default and configured per topic through two properties:
Set them when you create the topic.
- snctl
- pulsar-admin
Choose a subject name strategy
The broker derives the subject to validate against from a naming strategy. The default isTopicNameStrategy. Change it with:
Pass the fully qualified Confluent class name:
- snctl
- pulsar-admin
Limitations
Validation doesn’t reject tombstone records—messages with a null value—even when no schema ID is
attached. This is deliberate: it keeps deletes working on compacted topics instead of being blocked
by validation.
kop.kafka.* prefix rather than Confluent’s confluent.key.schema.validation
and confluent.value.schema.validation. Configuration copied from Confluent won’t take effect.
Next steps
Serializers and deserializers
Subject naming strategies and the record wire format.
Confluent compatibility
Behavior differences to check before you migrate.