Advanced Spring Boot 4: Event-Driven Architecture (Kafka) · Leçon

Évolution des schémas et modes de compatibilité

Découvrez comment les schémas Avro évoluent au fil du temps et comment les modes de compatibilité de Schema Registry permettent aux producteurs et aux consommateurs d’évoluer indépendamment sans se rendre mutuellement incompatibles.

Leçon 4 sur 413 étapes

Évolution des schémas et modes de compatibilité est une leçon Advanced Spring Boot 4: Event-Driven Architecture (Kafka) gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Advanced Spring Boot 4: Event-Driven Architecture (Kafka), et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Advanced Spring Boot 4: Event-Driven Architecture (Kafka) comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Why Schemas Change

Real systems evolve: new fields are added, old ones deprecated. Schema evolution is the discipline of changing schemas without breaking existing producers or consumers.

The Compatibility Contract

Schema Registry enforces a compatibility mode on each subject. Before registering a new schema version, the registry checks it against existing versions and rejects breaking changes.

Backward Compatibility

BACKWARD (the default): new consumers can read data written by the previous schema.

  • You may delete fields.
  • You may add fields that have a default value.

Forward Compatibility

FORWARD: old consumers can read data written by the new schema.

  • You may add fields.
  • You may delete fields that have a default value.

Full Compatibility

FULL combines both: a change must be backward and forward compatible. The safest but most restrictive mode — only fields with defaults may be added or removed.

Adding a Field Safely

To add a field while keeping backward compatibility, give it a default so old data deserializes cleanly.

{
  "name": "discount",
  "type": "double",
  "default": 0.0
}

Setting Compatibility per Subject

You can configure compatibility globally or override it per subject via the registry REST API.

PUT /config/orders-value
{ "compatibility": "FULL" }

Breaking Changes to Avoid

These changes break compatibility:

  • Adding a required field without a default.
  • Renaming a field (it is treated as delete plus add).
  • Changing a field's type incompatibly.

Transitive Modes

Modes like BACKWARD_TRANSITIVE check the new schema against all prior versions, not just the latest — important when consumers may lag many versions behind.

Rollout Strategy

With BACKWARD compatibility, upgrade consumers first, then producers. With FORWARD, upgrade producers first. Knowing the mode dictates deployment order.

Putting It Together

Schema evolution lets independent teams move at their own pace. Choose a compatibility mode, always add new fields with defaults, and follow the matching deployment order.

Quick Check

Test your understanding of compatibility modes.

Recap

You learned schema evolution and compatibility.

  • BACKWARD, FORWARD, and FULL define what changes are allowed.
  • Add new fields with a default to stay compatible.
  • Transitive modes check against all prior versions.
  • Compatibility mode dictates producer/consumer upgrade order.
Gratuit pour commencer

Apprends Advanced Spring Boot 4: Event-Driven Architecture (Kafka) avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
12
Leçons
48

Questions Fréquemment Posées

La leçon « Évolution des schémas et modes de compatibilité » est-elle gratuite ?

Oui — le texte complet de « Évolution des schémas et modes de compatibilité » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Advanced Spring Boot 4: Event-Driven Architecture (Kafka), passe à CoddyKit PRO. Le cours Advanced Spring Boot 4: Event-Driven Architecture (Kafka) comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Évolution des schémas et modes de compatibilité » ?

Découvrez comment les schémas Avro évoluent au fil du temps et comment les modes de compatibilité de Schema Registry permettent aux producteurs et aux consommateurs d’évoluer indépendamment sans se r… Tu pratiques Advanced Spring Boot 4: Event-Driven Architecture (Kafka) avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Advanced Spring Boot 4: Event-Driven Architecture (Kafka) ?

Aucune expérience préalable n'est requise. Advanced Spring Boot 4: Event-Driven Architecture (Kafka) sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Évolution des schémas et modes de compatibilité » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Advanced Spring Boot 4: Event-Driven Architecture (Kafka) ?

Oui. Chaque leçon Advanced Spring Boot 4: Event-Driven Architecture (Kafka) inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Importance de la gestion des schémas
  2. Avro pour définir les schémas
  3. Intégration de Spring Boot et du registre de schémas
  4. Évolution des schémas et modes de compatibilité
← Retour à Advanced Spring Boot 4: Event-Driven Architecture (Kafka)