Learning Platform
Глоссарий Troubleshooting
Урок 11.05 · 25 мин
Средний
Apicurio RegistryAWS Glue Schema RegistryKarapacebuf BSRSchema Registry AlternativesOpen SourceManaged Service

Альтернативные реестры схем

Confluent Schema Registry — де-факто стандарт, но не единственный вариант. С 2019 года (когда Confluent перевёл Schema Registry с Apache 2.0 на Confluent Community License) появились open-source альтернативы, а облачные провайдеры создали managed-сервисы.

Четыре основных альтернативы:

РеестрЛицензияКлючевая идея
Apicurio RegistryApache 2.0Multi-format, enterprise, Red Hat backed
AWS Glue Schema RegistryManaged (AWS)Serverless, IAM-native, AWS-ecosystem
KarapaceApache 2.0Drop-in Confluent replacement, Aiven backed
buf BSRCommercial + OSS CLIProtobuf-first, breaking detection без Registry

Apicurio Registry

Apicurio Registry — это open-source реестр от Red Hat, ориентированный не только на Kafka-схемы, но и на API-дизайн в целом.

Архитектура и возможности

Apicurio Registry 3.x: архитектура
Kafka Producers/ConsumersKafka-клиенты используют Apicurio SerDes (Java, Python, Go, TypeScript). В 3.x — модульный SerDes: generic core + platform-specific (Kafka, Pulsar, NATS).
REST API v3

Apicurio Registry 3.x

Apicurio Registry 3.x — Quarkus-based Java-приложение. Поддерживает три storage backend: in-memory (dev), KafkaSQL (production Kafka-native), PostgreSQL (production SQL-native). Один Docker-образ для всех вариантов.
Storage
KafkaSQLKafka как storage backend (аналогично Confluent SR). Данные в compacted topic, координация через Kafka consumer groups. Переписан в 3.x для стабильности.
PostgreSQLSQL backend — PostgreSQL/MySQL. Проще в эксплуатации для команд без глубокой Kafka-экспертизы. Поддержка транзакций.
In-MemoryVolatile storage для локальной разработки и тестирования. Данные не сохраняются при рестарте.

Ключевые особенности Apicurio 3.x:

  • Multi-format: Avro, Protobuf, JSON Schema + GraphQL, OpenAPI, AsyncAPI, XML Schema (XSD), WSDL
  • Confluent API compatibility: эндпоинт /apis/ccompat/v7/ реализует Confluent REST API → можно подключить существующие Kafka-клиенты с Confluent SerDes без изменения кода
  • Иерархические правила (3.x): Global → Group → Artifact rules. Группа правил наследуется и может быть переопределена на уровне конкретного артифакта
  • Artifact branching: семантическое версионирование веток (v1.x, v2.x) для параллельных линий эволюции
  • Kiota SDK: автогенерированные клиенты для Java, Python, Go, TypeScript
  • Лицензия: Apache 2.0 — можно использовать без ограничений, включая production
NOTE

Apicurio Registry 3.x — major release с breaking changes относительно 2.x. Новый namespace конфигурации (apicurio.* вместо registry.*), переписанный KafkaSQL слой, новая модель данных. Миграция через export/import ZIP.

Когда выбирать Apicurio

  • Нужна Apache 2.0 лицензия (без Confluent Community License ограничений)
  • Нужна поддержка не только Kafka-схем — OpenAPI, GraphQL, AsyncAPI
  • Инфраструктура на Red Hat / OpenShift — есть enterprise-версия (Red Hat build of Apicurio Registry)
  • Команда хочет PostgreSQL как storage вместо Kafka

AWS Glue Schema Registry

AWS Glue Schema Registry — serverless managed-сервис, встроенный в экосистему AWS.

Архитектура и особенности

AWS Glue Schema Registry: экосистема
Amazon MSKManaged Kafka. Kafka producers/consumers используют AWS Glue SerDes вместо Confluent SerDes. SchemaVersionId встраивается в record header.
Kinesis Data StreamsAWS Kinesis интегрируется через KPL/KCL. SerDes библиотека поддерживает Kinesis нативно — не только Kafka.
Apache FlinkManaged Flink на AWS (Amazon Managed Service for Apache Flink) — встроенная интеграция с Glue Schema Registry.
AWS SDK / SerDes

AWS Glue Schema Registry (Serverless)

Glue Schema Registry — serverless, бесплатный (без дополнительной оплаты сверх AWS Glue). Авторизация через IAM policies. Storage — managed, не нужно настраивать Kafka или БД.
IAM Auth
IAM PoliciesАвторизация через стандартные IAM policies. Можно разграничить доступ по registry, schema, и даже по конкретным действиям (RegisterSchemaVersion, GetSchemaVersion).
CloudTrailВсе операции с реестром логируются в AWS CloudTrail — аудит, compliance, forensics.

Ключевые особенности:

  • Форматы: Avro, JSON Schema (Draft-04/06/07), Protobuf (proto2/proto3)
  • 8 режимов совместимости: NONE, DISABLED, BACKWARD, BACKWARD_ALL, FORWARD, FORWARD_ALL, FULL, FULL_ALL (DISABLED — уникальный для Glue: запрещает новые версии)
  • Serverless: нет инфраструктуры для управления — ни Kafka, ни PostgreSQL
  • Бесплатный: включён в AWS Glue без дополнительной оплаты
  • IAM-native: авторизация через стандартные AWS IAM policies
  • ZLIB compression: опциональное сжатие при передаче schema body
  • SDK: Java (основной), C# (добавлен в 2025)
WARNING

AWS Glue Schema Registry не имеет Confluent-compatible API. Миграция с Confluent SR требует замены SerDes библиотек во всех producers/consumers. Нельзя просто поменять URL — нужно менять код.

Ограничения

  • Лимиты: 10 registries, 1000 schema versions per region (soft limits, можно увеличить через support)
  • Только AWS: нет on-premises варианта
  • Нет GraphQL/OpenAPI: только data serialization форматы
  • Java-first: C# добавлен недавно, Go/Python/Node — через REST API вручную

Когда выбирать Glue

  • 100% на AWS — MSK, Kinesis, Flink, Lambda
  • Не хотите управлять инфраструктурой Schema Registry
  • IAM-native авторизация важнее Confluent API совместимости

Karapace

Karapace — open-source (Apache 2.0) drop-in replacement для Confluent Schema Registry и Kafka REST Proxy от Aiven.

Ключевая идея

Karapace стремится к 1:1 совместимости с Confluent Schema Registry API. Это значит:

  • Существующие Kafka-клиенты с Confluent SerDes работают без изменения кода — достаточно поменять URL
  • Тот же _schemas compacted topic как storage backend
  • Те же subject naming conventions
  • Те же compatibility levels

Форматы: Avro, JSON Schema, Protobuf (Protobuf добавлен Instaclustr).

Лицензия: Apache 2.0.

Deployment: Docker-образ, standalone Python-приложение. Встроен в каждый Aiven for Apache Kafka сервис.

Авторизация: ACL-based — настраивается через конфигурацию или Aiven API.

TIP

Karapace — лучший выбор для миграции с Confluent Schema Registry без изменения клиентского кода. Меняете URL в конфигурации producer/consumer — и готово.

Когда выбирать Karapace

  • Нужен open-source Confluent-compatible реестр (Apache 2.0)
  • Используете Aiven for Apache Kafka — Karapace встроен
  • Миграция с Confluent SR с минимальными изменениями в клиентах
  • Не нужен multi-format (GraphQL, OpenAPI) — только Kafka-схемы

buf BSR (Buf Schema Registry)

buf BSR — специализированный реестр для Protobuf, часть экосистемы buf.

Отличие от Kafka-centric реестров

buf BSR — это не Kafka Schema Registry. Это реестр Protobuf-модулей с dependency management, breaking change detection и code generation:

  • Dependency management: .proto файлы могут импортировать модули из BSR (аналог Maven Central для Protobuf)
  • Breaking detection: buf breaking сравнивает .proto файлы и находит wire-incompatible изменения без обращения к Registry
  • Remote code generation: BSR генерирует SDK на Go, Java, Python, TypeScript из зарегистрированных модулей
  • Lint: buf lint проверяет naming conventions, documentation, package structure
NOTE

buf BSR и Confluent SR решают разные проблемы. Confluent SR — runtime schema management для Kafka. BSR — build-time Protobuf governance и distribution. Они не конкурируют — они дополняют друг друга. В Protobuf-heavy организации обычно используют оба.

Сравнительная матрица

Сравнение Schema Registry решений
КритерийПараметр сравнения
Confluent SRConfluent Schema Registry — де-факто стандарт, Confluent Community License
Apicurio 3.xApicurio Registry — open-source, Apache 2.0, Red Hat backed
AWS Glue SRAWS Glue Schema Registry — serverless managed, бесплатный
KarapaceKarapace — Apache 2.0, drop-in Confluent replacement, Aiven backed
ЛицензияТип лицензии определяет ограничения на использование и модификацию
Confluent CommunityConfluent Community License — нельзя создавать SaaS на базе продукта, но production self-hosted разрешён
Apache 2.0Полностью открытая лицензия — любое использование, включая SaaS
AWS ManagedManaged сервис — лицензия не применяется, оплата через AWS
Apache 2.0Полностью открытая лицензия — любое использование
ФорматыПоддерживаемые форматы схем для регистрации и валидации
Avro, Protobuf, JSON SchemaТри основных формата сериализации данных
Avro, Protobuf, JSON Schema, GraphQL, OpenAPI, AsyncAPI, XSDСемь+ форматов — не только data serialization, но и API design
Avro, Protobuf, JSON SchemaТри формата, Protobuf добавлен позже (proto2/proto3)
Avro, Protobuf, JSON SchemaТри формата, Protobuf добавлен Instaclustr
Storage backendГде реестр хранит схемы и метаданные
Kafka (_schemas)Единственный backend — Kafka compacted topic
Kafka / PostgreSQL / In-memoryТри варианта: KafkaSQL, PostgreSQL, in-memory (dev)
AWS ManagedServerless — storage полностью managed, детали скрыты
Kafka (_schemas)Тот же _schemas topic, что и Confluent SR
Confluent APIСовместимость с Confluent Schema Registry REST API — возможность подключения существующих Confluent SerDes клиентов без изменения кода
ОригиналConfluent SR — это источник API. Остальные реализуют совместимость с ним.
/apis/ccompat/v7/Compatibility endpoint реализует Confluent API v7. Можно подключать Confluent SerDes клиенты.
НетСобственный AWS API. Confluent SerDes не работают — нужны AWS Glue SerDes.
1:1 compatibleKarapace стремится к полной 1:1 совместимости с Confluent SR API. Drop-in replacement.
АвторизацияМеханизм контроля доступа к операциям реестра
RBAC / ACL / mTLSRBAC (role-based access control), Kafka ACLs, mTLS для production
OIDC / RBAC / Rules hierarchyOpenID Connect, RBAC, иерархические правила (Global → Group → Artifact)
IAM PoliciesСтандартные AWS IAM policies — fine-grained до уровня schema/action
ACLAccess Control Lists — настраиваемые per-subject permissions

Дерево решений: какой реестр выбрать?

Дерево выбора Schema Registry

100% AWS?

Первый вопрос: вся инфраструктура на AWS (MSK, Kinesis, Lambda)?
Да

AWS Glue SR

AWS Glue Schema Registry — serverless, бесплатный, IAM-native. Минимум операционной нагрузки.
Нет

Нужна Apache 2.0?

Нужна ли Apache 2.0 лицензия? (Confluent Community License запрещает SaaS на базе продукта)
Нет → Confluent SR
Да

Multi-format?

Нужны ли форматы помимо Avro/Protobuf/JSON Schema? (GraphQL, OpenAPI, AsyncAPI)
Да

Apicurio 3.x

Apicurio Registry — 7+ форматов, PostgreSQL backend, Red Hat enterprise support
Нет, только Kafka-схемы

Karapace

Karapace — 1:1 Confluent-compatible, Apache 2.0, минимальная миграция

Итоги

Выбор Schema Registry зависит от контекста:

  • Confluent SR — стандарт де-факто, максимальная экосистема и документация
  • Apicurio 3.x — Apache 2.0, multi-format (7+), PostgreSQL backend, Red Hat support
  • AWS Glue SR — serverless, бесплатный, IAM-native, но locked-in в AWS
  • Karapace — Apache 2.0 drop-in replacement для Confluent SR с минимальной миграцией
  • buf BSR — дополнение (не замена) для Protobuf governance: lint, breaking detection, code gen

В следующем уроке — как schema evolution работает в table formats: Delta Lake, Iceberg, Hudi, Paimon.

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 4. Karapace (Aiven) — drop-in replacement для Confluent Schema Registry. Что означает 'drop-in' на практике?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 6