Evolução de esquemas e modos de compatibilidade
Aprenda como o Confluent Schema Registry impõe compatibilidade conforme os esquemas mudam e como escolher com segurança a compatibilidade retroativa, progressiva ou completa.
Evolução de esquemas e modos de compatibilidade é uma aula grátis de Apache Kafka & Stream Processing Fundamentals no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Apache Kafka & Stream Processing Fundamentals, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Apache Kafka & Stream Processing Fundamentals inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Why Schemas Evolve
Data contracts change over time — you add fields, deprecate others, rename things. Schema evolution is the discipline of changing schemas without breaking existing producers and consumers.
The Compatibility Problem
Producers and consumers often deploy at different times. A new producer might emit a v2 schema while old consumers still expect v1.
Without rules, that mismatch causes deserialization failures in production.
Backward Compatibility
Backward: new schema can read data written with the old schema.
- Safe changes: delete a field, add a field with a default.
- Upgrade consumers first.
Forward Compatibility
Forward: old schema can read data written with the new schema.
- Safe changes: add a field, delete a field that had a default.
- Upgrade producers first.
Full Compatibility
Full requires both backward and forward compatibility at once.
- Only changes safe in both directions are allowed (add/remove fields with defaults).
- Producers and consumers can be upgraded in any order.
Transitive Variants
Each mode has a transitive version (BACKWARD_TRANSITIVE, etc.).
Non-transitive checks only against the latest schema; transitive checks against all prior versions — stronger guarantees, more constraints.
Setting Compatibility
Compatibility is configured per subject (or globally) via the Schema Registry REST API.
curl -X PUT \
http://localhost:8081/config/orders-value \
-H 'Content-Type: application/vnd.schemaregistry.v1+json' \
-d '{"compatibility": "BACKWARD"}'A Backward-Safe Avro Change
Adding a field with a default keeps old data readable under BACKWARD mode.
{
"type": "record",
"name": "Order",
"fields": [
{"name": "id", "type": "string"},
{"name": "amount", "type": "double"},
{"name": "currency", "type": "string", "default": "USD"}
]
}Testing Before You Register
The registry can check a candidate schema against the current one before you commit it.
curl -X POST \
http://localhost:8081/compatibility/subjects/orders-value/versions/latest \
-H 'Content-Type: application/vnd.schemaregistry.v1+json' \
-d '{"schema": "...escaped avro..."}'Breaking Changes
Changes that almost always break compatibility:
- Renaming a field (treated as delete + add).
- Changing a field's type incompatibly.
- Adding a required field with no default.
For these, create a new subject/topic version instead.
Choosing a Mode
Rules of thumb:
- BACKWARD (default) when you upgrade consumers first.
- FORWARD when producers lead.
- FULL for independently deployed teams.
- Use transitive variants for long-lived, replayable topics.
Quick Check
Test your understanding of compatibility modes.
Recap
You learned schema evolution and compatibility modes.
- BACKWARD: new reads old, upgrade consumers first.
- FORWARD: old reads new, upgrade producers first.
- FULL: both, any order.
- Transitive variants check all prior versions; renames and required no-default fields break compatibility.
Perguntas Frequentes
A aula “Evolução de esquemas e modos de compatibilidade” é grátis?
Sim — o texto completo de “Evolução de esquemas e modos de compatibilidade” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Apache Kafka & Stream Processing Fundamentals, atualize para CoddyKit PRO. O curso de Apache Kafka & Stream Processing Fundamentals inclui 4 aulas no total.
O que vou aprender em “Evolução de esquemas e modos de compatibilidade”?
Aprenda como o Confluent Schema Registry impõe compatibilidade conforme os esquemas mudam e como escolher com segurança a compatibilidade retroativa, progressiva ou completa. Você pratica Apache Kafka & Stream Processing Fundamentals com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Apache Kafka & Stream Processing Fundamentals?
Nenhuma experiência prévia é necessária. Apache Kafka & Stream Processing Fundamentals no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Evolução de esquemas e modos de compatibilidade”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Apache Kafka & Stream Processing Fundamentals?
Sim. Cada aula de Apache Kafka & Stream Processing Fundamentals inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Por que gerenciar esquemas?
- Esquemas Avro e Protobuf
- Integrando o Schema Registry ao Kafka
- Evolução de esquemas e modos de compatibilidade