High performance, runtime registry
for API Designs and Schemas
Try Live Download
Version: 2.4.1.Final
Clone or fork on GitHub

What is a Registry?

In the context of Apicurio, a registry is a runtime system (server) that stores a specific set of artifacts (files). At its core, a registry provides the ability to add, update, and remove the artifacts from the store, typically via a remote API of some kind (often a REST API).

Use Cases

API Registry

The key use-case for the Apicurio community, an API Registry is a system that allows users to register their API designs (e.g. OpenAPI or AsyncAPI files) so that potential API consumers can do the following:

  • Browse/search the list of APIs available in production
  • View details about a single available API
  • Learn how to use an API (via generated documentation)
  • Generate Client SDKs for an API

Schema Registry

In the messaging and event streaming world, data that are published to topics and queues often must be serialized or validated using a Schema (e.g. Apache Avro, JSON Schema, or Google protocol buffers). Schemas can be packaged in each application, but it is often a better architectural pattern to instead register them in an external system and then referenced from each application. This allows the following:

  • Decoupling of schemas from producers and consumers
  • Potential to upgrade producers without upgrading consumers
  • Central location to track all Schemas used in production
  • Document the data format required for each topic/queue
  • Centralized control of data format (schema) evolution

Apicurio Registry - Key Features

Storage/management of several types of artifacts
The registry supports adding, removing, and updating the following types of artifacts: OpenAPI, AsyncAPI, GraphQL, Apache Avro, Google protocol buffers, JSON Schema, Kafka Connect schema, WSDL, XML Schema (XSD)
Configurable content rules
Content evolution (adding and updating artifact content) can be controlled by enabling content rules, including Validity and Compatibility.
Multiple storage options
The registry can be configured to store data in various back-end storage systems depending on use-case, including Kafka, PostgreSQL, and Infinispan (embedded).