Chapter 7. Service Registry

Red Hat Integration - Service Registry 1.0 is provided in a General Availability release in Red Hat Integration 2020-Q2. Service Registry is a datastore for standard event schemas and API designs that is based on the Apicurio Registry open source community project.

You can use Service Registry to manage and share the structure of your data using a REST interface. For example, client applications can dynamically push or pull the latest updates to or from Service Registry without needing to redeploy. You can also use Service Registry to create optional rules to govern how registry content evolves over time. For example, this includes rules for content type validation or backwards and forwards compatibility of content versions.

7.1. Service Registry installation options

You can install Service Registry with the following storage options:

Table 7.1. Service Registry storage options

Storage optionRelease

Kafka Streams-based storage in AMQ Streams 1.5

General Availability

Cache-based storage in embedded Infinispan 10

Technology Preview only

Java Persistence API-based storage in PostgreSQL 12 database

Technology Preview only

Important

Technology Preview features are not supported with Red Hat production service-level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend implementing any Technology Preview features in production environments.

This Technology Preview feature provides early access to upcoming product innovations, enabling you to test functionality and provide feedback during the development process. For more information about support scope, see Technology Preview Features Support Scope.

7.2. New Service Registry features

Service Registry provides the following new features in this 1.0 General Availabilty release:

Service Registry OpenShift Operator
The new Red Hat Integration - Service Registry Operator is available from the OpenShift OperatorHub for installation and upgrade. This replaces the OpenShift template previously available in Technology Preview versions. Example custom resource definitions are also provided for storage in AMQ Streams, embedded Infinispan, or PostgreSQL database.
Service Registry web console
  • Search and browse for artifacts and versions (based on new Search REST API)
  • View details about an artifact, and view generated documentation (OpenAPI only)
  • Perform artifact actions:

    • Upload to registry
    • Edit metadata
    • Configure rules
    • Download locally
  • Configure global rules
Additional storage options (Technology Preview only)
  • Java Persistence API (JPA) - PostgreSQL 12.x database
  • Embedded Infinispan cache - Infinispan 10.0.1.Final (Community build)
Additional artifact types
  • WSDL - Web Services Description Language
  • XSD - XML Schema Definition
  • XML - Extensible Markup Language
Improved rules for registry content
  • Improved compatibility rule for JSON Schema artifacts
Improved artifact metadata
  • Automatic extraction of metadata defined in artifact content, for example, artifact name and description
  • Labels for searching and browsing
Quarkus version
  • Red Hat build of Quarkus 1.3.2.Final
New user documentation

7.3. Service Registry known issues

Service Registry core known issues

IPT-168 - Cannot compile project using released client Serde artifact

Some dependencies that are required for the Service Registry client serializer/deserializer Java classes are missing from the Red Hat GA Maven repository.

The following workaround options are available:

  • Manually exclude or override the missing dependencies
  • Import the quarkus-bom as a dependency in your pom.xml file:

    <quarkus.version>1.3.4.Final-redhat-00004</quarkus.version>
       </properties>
       <dependencyManagement>
           <dependencies>
               <!-- Quarkus Dependencies -->
               <dependency>
                   <groupId>io.quarkus</groupId>
                   <artifactId>quarkus-bom</artifactId>
                   <version>${quarkus.version}</version>
                   <type>pom</type>
                   <scope>import</scope>
               </dependency>
           </dependencies>
       </dependencyManagement>

Service Registry Operator known issues

Operator-32 - Operator should support SCRAM authorization without TLS, not only SCRAM+TLS

The Service Registry Operator should support Salted Challenge Response Authentication Mechanism (SCRAM) authorization without Transport Layer Security (TLS), not only SCRAM+TLS.

Operator-41 - Example CRD should not be empty::

Example ApicurioRegistry custom resource definition should not be empty.

Operator-42 - Auto-generation of OpenShift route may use wrong base host value

The auto-generation of the Service Registry OpenShift route may use a wrong base host value if there are multiple routerCanonicalHostname values.

Operator-45 - Operator may not delete all resources

The Service Registry Operator may not delete all resources when deleting ApicurioRegistry custom resource definition.