BBC Consumer Contracts vs Karapace
BBC Consumer Contracts
github.comKarapace
karapace.ioSide by side
| Figure | BBC Consumer Contracts | Karapace |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Contract Testing Tools | 8.1 (#8) | 7.9 (#12) |
| Founded | 2017 | 2020 |
| Installation | The README documents global CLI and local development dependency installation with pnpm. | Karapace requires Python 3.12 or newer and can be installed from Docker images or source. |
| Purpose | Consumer Contracts lets API consumers define executable JavaScript contracts describing the responses they expect from services. | Karapace is a free and open-source implementation of the Kafka Schema Registry and Kafka REST Proxy. |
Plans
In their own words
BBC Consumer Contracts
BBC Consumer Contracts is a free JavaScript package for executable consumer-driven API contracts. It describes the requests a consumer makes and the responses expected in return. Every contract requires consumer, name, request, and response properties. The package uses the request HTTP client and Joi schemas to check response status codes, headers, and JSON bodies. Optional before and after functions support setup and cleanup, using callbacks or asynchronous functions. Retry behavior accepts numeric or custom settings; the documented default maximum is zero. The consumer-contracts run command validates contracts recursively in a contracts directory or runs one named file. Programmatic callers can pass an array to validateContracts, which runs every contract instead of stopping at the first failure. Installation instructions cover global CLI use and local pnpm development dependencies. It requires Node.js 18 or later and pnpm 10 or later, and supports API and self-hosted use under Apache License 2.0.
Karapace
Karapace is a free, open-source implementation of the Kafka Schema Registry and Kafka REST Proxy. Its registry stores Avro, JSON Schema, and Protobuf schemas, keeps version histories, and checks compatibility between versions. The REST Proxy exposes HTTP APIs for producing and consuming Kafka events and handling administrative operations. Karapace implements the Confluent Schema Registry API and REST Proxy API versions 1 and 2, with version 2 as the default. A leader-and-replica design provides high availability and load balancing. Monitoring includes Prometheus-native metrics and OpenTelemetry traces and metrics, with optional Sentry reporting. Schema Registry authentication supports HTTP basic authentication and OAuth2/OIDC bearer-token validation; the REST Proxy forwards OAuth2 tokens instead of validating them. Karapace is self-hosted, requires Python 3.12 or newer, and installs from Docker images or source. Default Docker ports are 8081 for the Schema Registry and 8082 for the REST Proxy. It is offered at free.