Formation Apache Kafka : de zéro à la prod

Kafka Schema Registry : Avro et compatibilité des messages — chapitre 7

Maîtriser l’évolution des schémas, la compatibilité, les formats Avro/JSON/Protobuf et garantir la stabilité d’un système Kafka distribué dans le temps.

Réservé aux abonnés

Contexte

Le Kafka Schema Registry centralise les schémas des messages, souvent en Avro, et vérifie leur compatibilité avant chaque évolution. Dans un système distribué, les producteurs et consommateurs n’évoluent pas au même rythme. Une modification de structure (ajout de champs, suppression, changement de type) peut casser des centaines de microservices si rien n’est contrôlé.

Le Schema Registry résout ce problème en fournissant :

  • une base centralisée de schémas versionnés,
  • des règles de compatibilité,
  • un contrôle strict des messages publiés,
  • une protection contre les évolutions dangereuses.

Il devient ainsi un élément essentiel dans toute architecture Kafka professionnelle.

Lexique

Schema Registry

Service qui stocke et versionne les schémas (Avro, JSON Schema, Protobuf).

Avro

Format binaire compact très utilisé avec Kafka + support de compatibilité native.

ID de schéma

Identifiant unique de version envoyé avec chaque message.

Compatibilité backward

Les nouveaux schémas lisent les anciens messages.

Compatibilité forward

Les anciens consommateurs lisent les nouveaux messages.

Compatibilité full

Backward + Forward. La plus restrictive.

Diagramme

Schema Registryschémas versionnés (_schemas)Producteursérialise en Avrotopic ordersConsommateurdésérialise① enregistre → ID 42②③ ID 42 → schéma (cache)Contenu d’un message sur le disque0magic42ID (4 octets)données Avro binairesles valeurs, sans noms de champsLe schéma ne voyage pas : seulement son ID, en 5 octets d’en-têteRésultat : messages souvent 2 à 4 fois plus petits qu’en JSON
Schéma Schema Registry : un contrat partagé

La suite de cette leçon est réservée aux abonnés

Les 3 premières leçons de chaque formation sont gratuites. Débloquez la suite pour continuer.