Schema Registry Component Architecture

The below diagram represents the component architecture of Schema Registry.

Schema Registry has three main components:

  • Registry web server – Web Application exposing the REST endpoints you can use to manage schema entities. You can use a web proxy and load balancer with multiple Web Servers to provide HA and scalability.

  • Pluggable storage – Schema Registry uses the following two types of storages:

    • Schema Metadata Storage – Relational store that holds the metadata for the schema entities. Inn-memory storage (for development purposes) and mySQL databases are supported.

    • Serdes Storage – File storage for the serializer and deserializer jars. Local file system and HDFS storage are supported. Local file system storage is the default.

  • Schema Registry Client – A java client that components can use to interact with the RESTful services.

There are two integration points:
  • Custom NiFi Processors – New processors and controller services in NiFi that interact with the Schema Registry.

  • Kafka Serializer and Deserializer – A Kafka serializer and deserializer that uses Schema Registry. The Kafka serdes can be found on GitHub.