Solace Schema Registry
Solace Schema Registry is a datastore for sharing standard event schemas across event-driven and API architectures. You can use Solace Schema Registry to decouple the structure of your data from your client applications, and to share and manage your schemas. This reduces costs by decreasing overall message size. It also creates efficiencies by increasing consistent reuse of schemas across your organization.
Developers and administrators can query Solace Schema Registry for existing schemas required for services already deployed in production, and can register new schemas required for new services in development. Client applications can dynamically push or pull the latest schema updates to or from Solace Schema Registry at runtime without needing to redeploy. Solace Schema Registry provides a web console to make it easy for developers and administrators to manage registry content.
Client applications can reference the stored schemas to serialize and deserialize event messages, ensuring that the messages they send and receive are compatible with those schemas.
You can configure optional rules (such as enforcing validity or version compatibility) to govern the evolution of your Solace Schema Registry content. Any configured rules must pass before new schema versions can be uploaded to Solace Schema Registry, which ensures that development teams don't waste time trying to use invalid or incompatible schemas.
How Solace Schema Registry Works
The following example shows how Solace Schema Registry works. The diagram below shows a simple architecture that includes the Schema Registry, one event broker, and two clients (one that publishes messages, and one that consumes messages). The clients retrieve schemas from the Schema Registry and use them to serialize or deserialize messages when they publish or consume them, respectively.
Let's examine each step in this example:
- A schema "governor" defines a valid schema using the Schema Registry web console.
- The publisher requests a schema from the Schema Registry by providing an artifact reference, a unique identifier often based on the topic name.
- If the artifact reference is valid, the Schema Registry returns a schema ID.
- The publisher's serializer adds the schema ID and schema metadata to the outgoing message. The publisher then serializes and sends the message.
- The message is received by the event broker and delivered to the consumer.
- The consumer receives the message and provides the schema ID to Schema Registry.
- The Schema Registry responds with the matching schema.
- The consumer's deserializer uses the schema to convert the message's header and payload to API objects.
Downloading Solace Schema Registry
Solace Schema Registry is distributed as a downloadable package that contains Solace Schema Registry and all dependent components. You can download Solace Schema Registry from the Solace Products website. A Solace Products website account is required to access these products.
System Requirements
Before deploying Solace Schema Registry, ensure your environment meets the following minimum requirements:
- Container Runtime—Docker 20.10+ or Podman 3.0+ (for container deployments)
- Kubernetes—Version 1.21+ with Helm 3.8+ (for Kubernetes deployments)
For detailed system requirements including enterprise specifications, see the specific deployment guides: Deploying and Configuring Solace Schema Registry with Docker or Podman or Deploying and Configuring Solace Schema Registry with Kubernetes.
Deploying Solace Schema Registry
You can deploy Solace Schema Registry as a standalone instance in a container or in a high-availability (HA) pair in a Kubernetes cluster. You can quickly set up Solace Schema Registry in a HA configuration using the provided Helm chart.
You can set up the Schema Registry with Basic authentication or OpenID Connect (OIDC) authentication.
For more information about these deployment options, see Deploying and Configuring Solace Schema Registry with Docker or Podman and Deploying and Configuring Solace Schema Registry with Kubernetes.
Configuring Solace Schema Registry
You can set a number of configuration options for your Solace Schema Registry deployment.
For information about configuring the web console, logging, and health checks, see Deploying and Configuring Solace Schema Registry.
For a list of all available configuration options, see the Solace Schema Registry Configuration Reference.
Managing Content in Solace Schema Registry
You can use Solace Schema Registry web console to manage schema artifacts stored in Solace Schema Registry. For example, you can view and add artifacts and configure content rules.
For more information, see Using Solace Schema Registry Web Console.
You can also manage content in Solace Schema Registry using the REST API. For more information, see the Solace Schema Registry REST API documentation.
Schema Registry Artifacts
The items stored in the Schema Registry, such as event schemas, are known as registry artifacts. Artifacts have associated metadata that describes their properties, such as their creation date, name, and owner. Artifacts also have versions, which allow changes to be managed over time. In addition, related artifacts can be collected into artifact groups, making them easier to manage. For example, you could use different group IDs to separate applications that define schemas with the same name, such as app1/User
and app2/User
, which allows each application to manage its own version independently.
For more information, see Schema Registry Artifacts and the Solace Schema Registry Artifact Reference.
Serializing and Deserializing Event Messages with Solace Schema Registry
Serialization means converting an application’s data objects from their native format into a binary format suitable for transmission or storage. Deserialization is converting the binary data back into its original format for application processing.
For example, a message publishing client can use a serializer to encode messages that conform to a specific event schema. A consuming application uses a deserializer to validate incoming messages based on a specific schema ID and properly decode those messages. This ensures consistent schema use and helps to prevent data errors at runtime.
Each different API and payload format pair needs its own Serializer/Deserializer (SERDES).
For more information about SERDES, see Serialization and Deserialization with Solace Schema Registry.