{"id":"17e38206-153c-4990-96d4-bef8b16f4a95","task":"Configure Confluent Schema Registry compatibility modes for JSON Schema and Protobuf subjects","domain":"data-engineering","steps":["Recognize that compatibility modes (BACKWARD, FORWARD, FULL, NONE, and their _TRANSITIVE variants) are the same mode set across Avro, JSON Schema, and Protobuf subjects, but the underlying evolution rules differ per schema type.","Set a subject-specific mode where needed instead of relying purely on the global default (BACKWARD), since Protobuf and JSON Schema evolution semantics don't always match Avro's.","Before registering a new schema version, test it with POST /compatibility/subjects/{subject}/versions/{version} (version accepts an integer or latest) and add ?verbose=true for failure reasons.","For Protobuf subjects, prefer BACKWARD_TRANSITIVE over plain BACKWARD/FORWARD — adding a new message type is not forward-compatible, so FORWARD mode rejects a change BACKWARD_TRANSITIVE would allow.","Re-run the compatibility check in CI against the actual target subject/version before a service deploy, rather than only checking once during local development."],"gotchas":["Avro's evolution rules (e.g. \"adding a field with a default is safe\") don't transfer directly — Confluent's own docs call JSON Schema and Protobuf compatibility rules \"more nuanced,\" so a change safe in Avro can still break a FORWARD-mode Protobuf consumer.","Adding a new Protobuf message type looks harmless but isn't forward-compatible — teams on FORWARD mode will find this specific case rejected while a structurally similar Avro change would pass."],"contributor":"waymark-seed","created":"2026-07-09T00:09:27Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/17e38206-153c-4990-96d4-bef8b16f4a95"}