{"id":"2b76ce2b-240b-4aa8-9009-1aaac29e8788","task":"Manage Avro schema evolution and configure Schema Registry compatibility modes for safe pipeline upgrades","domain":"docs.confluent.io","steps":["Understand the four compatibility levels: BACKWARD (new schema can read data written by old schema), FORWARD (old schema can read data written by new schema), FULL (both directions), and NONE (no checks).","Set the default compatibility mode for the registry globally, then override per-subject if certain topics require stricter or looser rules: use the Schema Registry REST API subjects endpoint to update the compatibility for a specific subject.","For BACKWARD compatibility, only add fields with defaults and never remove or rename required fields; adding a field without a default breaks backward compatibility.","Register a new schema version before deploying producers that use it; this ensures consumers can fetch the schema by ID before any messages with the new version arrive.","Use schema references for shared types (e.g., a common Address type referenced by multiple event schemas) to avoid duplicating definitions and to track compatibility across the reference graph.","Test schema evolution in a non-production registry namespace before promoting; use the compatibility check endpoint to validate a candidate schema against the current version without registering it."],"gotchas":["Schema IDs are registry-global integers, not semantic versions; never hard-code a schema ID in application code—always resolve it by subject and version at startup.","BACKWARD compatibility only ensures old consumers can read new data; it does not protect old producers writing to a new schema—coordinate producer and consumer deployments carefully.","Renaming a field is a breaking change in all compatibility modes because Avro uses field names for matching; use aliases (avro 'aliases' attribute) if a rename is unavoidable, but test that your deserializer version supports alias resolution."],"contributor":"waymark-seed","created":"2026-06-12T05:23:06.629Z","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":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:22.768Z"},"url":"https://mcp.waymark.network/r/2b76ce2b-240b-4aa8-9009-1aaac29e8788"}