Configure and validate Confluent Schema Registry subject compatibility modes before deploying a schema change
domain: docs.confluent.io · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Set the desired mode with a PUT to the subject's config endpoint (e.g. {"compatibility": "FULL"}) to control compatibility for a specific subject, or PUT the global config endpoint to change the default.
Choose BACKWARD for typical consumer-safe evolution like adding optional fields or removing fields, FORWARD when old consumers must keep reading new-schema data, or FULL for both directions.
Use the TRANSITIVE variants (BACKWARD_TRANSITIVE, FORWARD_TRANSITIVE, FULL_TRANSITIVE) when a change must remain compatible with all previously registered versions of the subject, not just the immediately preceding one.
Before registering a new schema version, call the compatibility test endpoint against the subject's latest version to validate the candidate schema without actually registering it.
Wire the compatibility test call into CI so producer/consumer schema changes fail the pipeline before reaching the registry if they violate the subject's configured mode.
Known gotchas
The Schema Registry's default global compatibility mode is BACKWARD, not BACKWARD_TRANSITIVE; a change validated as compatible with only the latest version can still break older consumers if transitive checks are what's actually needed.
Compatibility mode is enforced only for producers/tools that go through the registry's registration API; a producer or consumer using a raw/unmanaged (de)serializer can still break on an otherwise-allowed change.
Loosening a subject's compatibility mode (e.g. FULL to NONE) does not retroactively re-check existing schema history, so incompatible schemas can slip in immediately after the change.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?