Apicurio Registry and Confluent Schema Registry both store and version schemas for Apache Kafka. Apicurio Registry is an Apache 2.0 licensed CNCF project that also manages API definitions and AI artifacts, and it implements the Confluent Schema Registry API, so most applications that use Confluent serializers can switch by changing one URL.
| Apicurio Registry | Confluent Schema Registry | |
|---|---|---|
| License | Apache License 2.0 | Confluent Community License for the self-managed component |
| Governance | CNCF Sandbox project, open community | Developed by Confluent, Inc. |
| Schema formats | Avro, Protobuf, JSON Schema | Avro, Protobuf, JSON Schema |
| Other artifact types | OpenAPI, AsyncAPI, GraphQL, Kafka Connect, OpenRPC, Thrift, WSDL, XML, XSD, A2A agent cards, MCP tools, prompt templates, model schemas, and custom types | Not applicable |
| Storage | PostgreSQL, Apache Kafka, in-memory H2, read-only GitOps and KubernetesOps (experimental) | Kafka topic |
| Confluent client compatibility | Confluent Schema Registry API v7 and v8 under /apis/ccompat/ | Native |
| Native API | Apicurio Registry REST API v3 with groups, branches and labels | Not applicable |
| Web console | Included | Part of Confluent Control Center or Confluent Cloud |
| Kubernetes | Operator for Kubernetes and OpenShift | Confluent for Kubernetes |
Confluent product details change over time; check Confluent's documentation for the current state.
Apicurio Registry serves the Confluent Schema Registry API at /apis/ccompat/v7 and
/apis/ccompat/v8. The schemas, subjects, compatibility, config, mode and contexts APIs are supported,
with full support for Avro, JSON Schema and Protobuf. Point existing Confluent serializers at it:
schema.registry.url=http://my-registry:8080/apis/ccompat/v7
When no compatibility rule is configured, the compatibility check endpoint defaults to BACKWARD, as
Confluent does. Schema registration only enforces compatibility once you configure a rule with
PUT /config or PUT /config/{subject}.
| Confluent feature | Behavior in Apicurio Registry | Alternative |
|---|---|---|
| Schema Linking and exporters | GET /exporters returns an empty list; other exporter operations return an error | Import/export API, Kafka storage replication, or GitOps |
| Client-side field level encryption keys (KEKs, DEKs) | Endpoints not present | Application-level encryption or external key management |
| Cluster metadata API | /v1/metadata/* not present | Apicurio Registry system API |
| Data contract rule enforcement | metadata and ruleSet are accepted but neither stored nor enforced | Native data contracts (apicurio.contracts.enabled=true) |
schema.registry.url at /apis/ccompat/v7. Review the
apicurio.ccompat.legacy-id-mode.enabled setting: the default maps Confluent schema IDs to content IDs, as Confluent does.