Что такое Kafka Schema Registry?

При работе с Apache Kafka одна из основных проблем — это формат сообщений. Представьте: продюсер пишет события в одном формате, а консьюмер ждёт другой. Результат — ошибки и падения. Решением становится Kafka Schema Registry.

Schema Registry — это отдельный сервис, который хранит и управляет схемами (чаще всего Avro, но также JSON Schema или Protobuf). Продюсер регистрирует схему один раз, а консьюмеры при чтении сообщений получают её по идентификатору.

Зачем он нужен?

  • Консистентность: все участники системы понимают структуру данных одинаково.
  • Эволюция: можно добавлять новые поля или изменять схему без поломки старых консьюмеров.
  • Эффективность: вместо передачи полной схемы в каждом сообщении передаётся только ID.

Пример

Есть система e-commerce:

  • Продюсер пишет события заказа: order_id, customer_id, total.
  • Потом добавляется новое поле discount.
    С Schema Registry старые консьюмеры продолжают работать (игнорируя новое поле), а новые используют обновлённую схему.

Основные возможности

  • Централизованное управление схемами.
  • Проверка совместимости при изменениях.
  • REST API для регистрации и получения схем.
  • Интеграция с Kafka-клиентами, Connect и ksqlDB.

Для DevOps инженера Schema Registry — это инструмент, который упрощает поддержку больших дата-пайплайнов, снижает риски несовместимости и позволяет безопасно развивать систему.