Confluent Schema Registry stores versioned Avro, Protobuf, and JSON schemas for Kafka topics and enforces compatibility rules when producers register changes.
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.
How Confluent Schema Registry answers the questions Schema Registries turns on.
| How it works | |
| Schema formats | Three (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 |
| Protocol | Its 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 rules | Seven (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 enforced | At 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 run | A 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 libraries | Serialisers 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 code | Not 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 |
| Connectors | The 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 control | RBAC 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 unit | Three 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 |
vs Confluent Schema Registry: Open source (permissive) · Self-hosted · Free
vs Confluent Schema Registry: Commercial · Managed · Serverless · Free
vs Confluent Schema Registry: Commercial