When producers and consumers share a Kafka topic without agreeing on the data format, things break in production. A producer adds a field. A consumer expects the old schema. The deserialization fails, the consumer crashes, and the pipeline stops. Schema registries prevent this by enforcing compatibility rules: producers must register their schemas, the registry checks compatibility against previous versions, and incompatible changes are rejected before they reach the topic.
Three schema registries dominate: Confluent Schema Registry, Apicurio Registry, and AWS Glue Schema Registry. They all enforce compatibility. They differ in format support, operational model, and integration depth with the streaming platforms they serve.
What a Schema Registry Must Do
The core function is straightforward: producers register schemas, consumers retrieve schemas, and the registry enforces compatibility rules. Backward compatibility (new schemas can read old data), forward compatibility (old schemas can read new data), full compatibility (both directions), and none (no checking).
Beyond the core function, the differentiators are:
- Format support: Avro only, or Avro plus Protobuf plus JSON Schema?
- Integration depth: How tightly does it connect to your streaming platform?
- Operational model: Self-hosted, managed, or embedded?
- Governance: Can you track schema evolution, manage teams, and audit changes?
Confluent Schema Registry: The Default
If you run Kafka, Confluent Schema Registry is the default choice. It was built alongside Kafka, it speaks the Confluent wire format, and every major Kafka client library supports it natively. The integration is seamless — producers register schemas automatically, consumers retrieve schemas by ID, and the registry enforces compatibility without explicit application logic.
Confluent Schema Registry supports Avro, Protobuf, and JSON Schema. The compatibility modes (backward, forward, full, none) are configurable per subject (topic-key or topic-value). The subject naming strategies (topic-name, record-name, topic-record-name) control how schemas are organized and versioned.
The Kafka-native integration is Confluent’s strongest advantage. The registry stores schemas in a Kafka topic (_schemas), which means schema data is replicated, durable, and consistent using Kafka’s own guarantees. No separate database, no separate replication, no separate backup.
Confluent Schema Registry’s limitation is Confluent coupling. The wire format (a schema ID prefixed to each message) is specific to Confluent. Producers and consumers must use Confluent-compatible serializers and deserializers. If you use non-Confluent Kafka clients, the integration requires additional work.
The governance features are basic. The registry tracks schema versions and enforces compatibility, but there is no built-in approval workflow, no team-level access control, and no schema discovery or documentation features. For governance, you need Confluent Cloud’s commercial features or a separate governance tool.
Confluent Schema Registry is open source (Community Edition) and available as part of Confluent Cloud (managed). The managed version adds multi-region replication, RBAC, and audit logging — features that are absent from the open source version.
Apicurio Registry: Open Source Governance
Apicurio Registry is Red Hat’s open source schema registry. It supports Avro, Protobuf, JSON Schema, OpenAPI, AsyncAPI, and WSDL — the broadest format support of the three. The additional format support makes Apicurio useful for organizations that manage more than just Kafka schemas — API specifications, event schemas, and configuration schemas can all live in the same registry.
Apicurio’s governance features are stronger than Confluent’s open source version. Team-based access control, artifact-level permissions, and rule-based compatibility enforcement provide governance capabilities that Confluent reserves for its commercial offering.
The REST API is well-designed and comprehensive. Schema registration, retrieval, search, and version management are all available through a clean API. The UI provides browsing, search, and basic management — sufficient for small teams but lacking the polish of commercial alternatives.
Apicurio’s storage options include in-memory (for development), Kafka (for production with Kafka-native durability), and a database (Postgres or SQL Server) for production with richer querying. The database-backed option provides features that Kafka-backed storage lacks: search, filtering, and artifact metadata queries.
The limitation is ecosystem integration. Apicurio does not have the same native integration with Kafka clients that Confluent Schema Registry has. Producers and consumers must be configured to use Apicurio’s serializers, and the configuration is more involved than Confluent’s drop-in integration. For teams that are deeply invested in the Confluent ecosystem, switching to Apicurio requires client-side changes.
Apicurio’s community is smaller than Confluent’s. The documentation is adequate but less comprehensive, and the Stack Overflow / community support is thinner. Red Hat provides commercial support through Red Hat Integration, but the community edition is a solo effort for most users.
AWS Glue Schema Registry: Managed Serverless
AWS Glue Schema Registry is the serverless option. No infrastructure to manage, no clusters to operate, no upgrades to plan. The registry runs as an AWS service, and you pay per schema operation (register, retrieve, check compatibility).
The AWS integration is the defining feature. Glue Schema Registry integrates natively with Kinesis Data Streams, MSK (Managed Streaming for Kafka), Lambda, and the AWS SDK. If your streaming platform is Kinesis or MSK, Glue Schema Registry is the path of least resistance.
Glue Schema Registry supports Avro and JSON Schema. Protobuf support is not available, which is a limitation for organizations that have standardized on Protobuf for their event schemas. The compatibility modes (backward, forward, full, none, disabled) are configurable per registry or per schema.
The serverless model eliminates operational burden completely. There is no cluster to size, no replication to configure, and no backups to manage. AWS handles durability, availability, and scaling. For teams that want schema registry capabilities without schema registry operations, Glue is the simplest option.
The limitation is AWS lock-in. Glue Schema Registry is AWS-only — you cannot run it on GCP, Azure, or on-premises. The API is not compatible with Confluent’s or Apicurio’s, which means migrating away requires changing producer and consumer configurations.
Glue Schema Registry’s feature set is the thinnest of the three. No UI for browsing schemas (you use the AWS Console or CLI). No search capabilities. No governance beyond IAM-based access control. The registry does exactly what it needs to do and nothing more.
The cost is low for moderate usage — schema operations are cheap. But at high volume (frequent schema registrations, large numbers of schema retrievals), the per-operation pricing can add up compared to a self-hosted registry where the cost is fixed.
Format Support Matrix
This diagram requires JavaScript.
Enable JavaScript in your browser to use this feature.
Decision Framework
Use Confluent Schema Registry when your streaming platform is Kafka (self-hosted or Confluent Cloud) and you want the tightest integration with the least configuration effort. Best for teams that are already in the Confluent ecosystem and do not need advanced governance features. The open source version is sufficient for most deployments; Confluent Cloud adds governance at additional cost.
Use Apicurio Registry when you want open source governance features (team access control, artifact permissions, rule-based enforcement), need format support beyond Avro/Protobuf/JSON, or want to manage API specifications alongside event schemas. Best for organizations that prioritize governance and flexibility over ecosystem integration.
Use AWS Glue Schema Registry when your streaming platform is Kinesis or MSK, you want zero operational overhead, and your schema format needs are limited to Avro and JSON Schema. Best for AWS-centric organizations that prioritize simplicity over feature depth.
The most common mistake is over-investing in schema governance early. Start with Confluent Schema Registry (if on Kafka) or Glue (if on AWS) and the default compatibility mode (backward). Add governance tools and stricter compatibility enforcement when your schema count and team size justify the overhead. Most teams do not need advanced schema governance until they have dozens of topics and multiple teams producing schemas.