Karapace is an Apache-2.0 drop-in replacement for Confluent Schema Registry (plus a Kafka REST proxy), maintained by Aiven.
A Python service on aiohttp storing state in a compacted Kafka topic, with leader election through Kafka and a REST proxy served alongside. Free with no commercial edition; Aiven maintains it and operates it inside its managed Kafka.
How Karapace answers the questions Schema Registries turns on.
| How it works | |
| Schema formats | Avro, JSON Schema and Protobuf, the same three Confluent's registry holds, which follows from compatibility being the entire point rather than from a separate decision |
| Protocol | The Confluent API is the product, and the README is more precise than the marketing: Karapace "is compatible with Schema Registry 6.1.1 on API level" and "supports all operations in the API", with the stated goal of tracking new Confluent releases in reasonable time, while warning that schema normalisation and error-message parity "cannot be always fully guaranteed". A Kafka REST proxy is served beside the registry on the same footing |
| Compatibility rules | The Confluent seven (NONE, BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL and FULL_TRANSITIVE) with BACKWARD the global default, settable globally or per subject through the same endpoints, because the semantics follow from the compatibility claim rather than being designed independently |
| Where enforced | At registration, as Confluent's is, the same contract reached through the same endpoints, which is the point of the row |
| Running it | |
| What you run | A Python service on aiohttp keeping its state in Kafka exactly as Confluent's does, a topic named by topic_name, defaulting to _schemas, with a configurable replication factor. Leader and replica instances elect a master through Kafka itself, tuned by master_eligibility and an election strategy defaulting to lowest |
| Connections | |
| Client libraries | Confluent's own client libraries, unchanged, there are no Karapace serialisers, because the whole proposition is that existing serdes, connectors and tooling cannot tell the difference. The bundled REST proxy covers HTTP clients with no native Kafka library at all |
| Generated code | None: the same answer as Confluent's registry and Apicurio's, and for the same reason: schemas come out through the API and the ordinary Avro or Protobuf toolchain does the rest |
| Connectors | Whatever already speaks the Confluent API (serialisers, Kafka Connect converters, stream processors and management tooling, none of which need changing) with the bundled REST proxy adding plain HTTP producers and consumers to that list |
| Access | |
| Access control | Thin, and honestly so: HTTP basic auth with users and access-control rules in a registry_authfile, plus REST proxy authorisation that can delegate to Kafka over SASL using the caller's own credentials. There is no RBAC product, no schema linking and no data contracts; this row's case is the licence rather than the governance surface |
| Cost | |
| Billing unit | Nothing to pay: Apache-2.0 with no commercial edition of Karapace itself. Aiven, which maintains it, runs it inside its managed Kafka service, so the cost there is an Aiven subscription rather than a Karapace one |
vs Karapace: Self-hosted · Java
vs Karapace: Commercial · Managed · Serverless
vs Karapace: Commercial · Free · Subscription