Comparison
Schema compatibility modevsSchema registry
Schema compatibility mode
you tried to add a required field and the registry rejected it, because old consumers could not read the new messages.
The rule a registry applies when a new schema version is proposed: backward means new readers can read old data, forward means old readers can read new data, full means both. Which one you need depends on whether producers or consumers upgrade first, which is a deployment question rather than a data one. Setting it to none because a change was blocked is how a registry becomes a filing cabinet.
Full entry →Schema registry
the producer registers the schema and gets an id, and the consumer looks that id up rather than guessing at the payload.
A service holding the versioned schemas for messages on a stream, with rules about which changes are allowed. It is what makes a binary format like Avro workable at scale: payloads carry an id rather than field names, and compatibility is checked at registration rather than discovered at consumption. Its usefulness collapses entirely if producers can register incompatible versions, so the compatibility mode is the setting that matters.
Full entry →