Favicon of Confluent Schema Registry

Confluent Schema Registry

Confluent Schema Registry stores versioned Avro, Protobuf, and JSON schemas for Kafka topics and enforces compatibility rules when producers register changes.

LicenseSource-available
DeploymentSelf-hostedManaged
PricingFreeSubscription
Operational complexityLow
WorkloadStreaming
LanguageJava

Use it when

  • Kafka is the platform and you want the default: the registry every serializer, connector, and stream processor was written against.
  • Independent deployment is the goal; registration-time compatibility checks (seven modes, backward by default) reject breaking changes before they reach a topic.
  • Clients span languages; serializers for Java, Python, .NET, Go, C++, and JavaScript resolve schemas by id from the message envelope.
  • On Confluent Cloud you want governance attached: contexts, Schema Linking, and Data Contracts in the Advanced package.

Think twice when

  • The Confluent Community License is unacceptable (redistribution, OSS-only policy, competitive hosting); Karapace offers the same API under Apache-2.0.
  • There is no Kafka; storage is a compacted Kafka topic, and the registry cannot run without a cluster.
  • Contracts cover more than topic schemas; Apicurio stores API definitions too, and the BSR treats Protobuf modules as the unit.

How it runs

A Java service whose entire state lives in a single compacted Kafka topic (_schemas), with instances electing a leader through Kafka itself. Self-hosted it is free under the Community License; on Confluent Cloud it is a Stream Governance package billed hourly with a schema allowance.

Details

Compare

How Confluent Schema Registry answers the questions Schema Registries turns on.

Schema Registries
How it works
Schema formatsThree (Avro, JSON Schema and Protobuf) which is the set the rest of the ecosystem standardised on, and the reason every other Kafka-facing row here supports exactly these and no more
ProtocolIts own REST API, and it is the standard rather than an implementation of one, every other row in this capability is measured by how completely it reproduces this surface. Schema contexts partition a single registry into logical sub-registries above it
Compatibility rulesSeven (BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE and NONE) with BACKWARD the default and deliberately non-transitive, checked only against the latest registered schema. Confluent's stated reason for that default is that it lets a consumer rewind to the beginning of a topic
Where enforcedAt registration: a schema is checked against its subject's compatibility rule before being accepted, so an incompatible change is rejected before it can reach a topic. That rejection is what lets producers and consumers deploy independently of each other
Running it
What you runA Java service whose storage is Kafka itself, a single-partition, compacted topic, _schemas by default, holds every schema, subject, version, id and compatibility setting as an append-only log, and each registry instance both produces to and consumes from it. There is no database, and no running it without a Kafka cluster
Connections
Client librariesSerialisers and deserialisers for Java, Python, .NET, JavaScript, Go and C++ through Confluent's client libraries, resolving a schema by the id carried in the message envelope. That envelope format is the thing every third-party client implements
Generated codeNot from the registry: a Maven plugin registers schemas, downloads them and tests compatibility during a build, which is how a schema reaches the ordinary Avro or Protobuf compiler. The same shape as Apicurio's answer and the opposite of the BSR's
ConnectorsThe Kafka ecosystem by default (Kafka Connect through its converters, ksqlDB, Kafka Streams and the client libraries) because this is the registry those tools were written against rather than one they were adapted to
Access
Access controlRBAC and OAuth, with the Schema Registry Security Plugin behind an Enterprise licence; schema contexts partition a registry into sub-registries, Schema Linking copies schemas between them, and Data Contracts attach rules to a schema rather than only a compatibility mode, the last being an Advanced-package feature on Confluent Cloud
Cost
Billing unitThree answers depending where it runs. Self-hosted it is free under the Confluent Community License, or covered by a Confluent Platform subscription. On Confluent Cloud it is a Stream Governance package billed by the hour with a schema allowance, Essentials at $0 an hour including 100 schemas, Advanced from $1 an hour including 20,000 and adding Data Contracts

Share:

Alternatives to Confluent Schema Registry

Favicon

 

  
  
Favicon

 

  
  
Favicon

 

  
  

Used in architectures