This article introduces new storage installation options and features in the Red Hat Integration service registry. The service registry component is based on Apicurio. You can use it to store and retrieve service artifacts such as OpenAPI specifications and AsyncAPI definitions, and for schemas such as Apache Avro, JSON, and Google Protobuf. We've provided Red Hat Integration's Service Registry 1.1 component as a general availability (GA) release in Red Hat Integration 2020-Q4.
What is the service registry?
The Red Hat Integration service registry is a datastore for standard event schemas and API designs. As a developer, you can use it to decouple the structure of your data from your applications. You can also use it to share and manage your data structure using a REST interface. Red Hat's service registry is built on the Apicurio Registry, an open source community project.
The service registry handles the following data formats:
- Apache Avro schema
- Apache Kafka Connect schema
- JSON Schema
- Google protocol buffers schema
- Google protocol buffers file descriptor
- OpenAPI specification
- AsyncAPI specification
- GraphQL schema
- Web Services Definition Language
- XML Schema Definition
To help prevent invalid content from being added to the registry, you can configure rules for each added artifact. All of the rules for an artifact must pass before you may upload a new version.
Two new storage installation options
The initial service registry release was focused on a use case for Apache Kafka schema management. Because of this, we used the Kafka Streams API for storage. As broader use cases have emerged, we've seen the need for additional storage mechanisms. The Service Registry 1.1 component offers two new storage installation options, currently in technical preview.
This release offers cache-based storage using embedded Infinispan 10. We are also offering PostgreSQL 12 storage based on the Jakarta Persistence API.
New features in Service Registry 1.1
Along with the new storage options, this release includes a few interesting features:
- Fewer dependencies and easier packaging for the REST client.
- Improved serialization and deserialization classes, with support for the JSON encoding in Apache Avro.
- New environment variables for more flexible control of URLs, Kafka topics, and global rules.
- A new Format button in the web console for better readability.
- Improved operator labeling and metrics.
Note: See the Apicurio GitHub repository for example applications that demonstrate how to use the Kafka clients, JSON schema, Protobuf, and Apache Avro serializers and deserializers.
Using the Red Hat Integration service registry
The Red Hat Integration service registry is an artifact repository that unifies REST and asynchronous APIs for a complete event-driven architecture. You can use it as a simple schema registry for Kafka, to externalize Debezium schemas, or as a catalog for your OpenAPI documents. Serializer and deserializer classes support using the Red Hat Integration service registry as a drop-in replacement for the Confluent schema registry for Apache Kafka clients.
Conclusion
The new Red Hat Integration Service Registry 1.1 component features two new storage installation options and a handful of added features to improve your development experience. The component is available as a GA release in Red Hat Integration 2020-Q4.
Last updated: December 4, 2020