DEV Community

Charles Colella
Charles Colella

Posted on

Schema Manager: Centralize Schemas in a Repository with Support for Schema Registry Integration

Hey all! I’d love to share a project I’ve been working on called Schema Manager. You can check out the full project on GitHub here: Schema Manager GitHub Repo.

Why Schema Manager?

In many projects, each microservice handles schema files independently—publishing into a registry and generating the necessary code. But this should not be the responsibility of each microservice. With Schema Manager, you get:

  • A single repository storing all schema versions.
  • Automated schema registration in the registry when new versions are detected. It also handles the dependency graph, ensuring schemas are registered in the correct order.
  • Microservices that simply consume the schemas they need

Quick Start

For an example repository using the Schema Manager:

git clone https://github.com/charlescol/schema-manager-example.git
Enter fullscreen mode Exit fullscreen mode

The Schema Manager is distributed via NPM:

npm install @charlescol/schema-manager
Enter fullscreen mode Exit fullscreen mode




Future Plans

Schema Manager currently supports Protobuf and Avro schemas, integrated with Confluent Schema Registry. We plan to:

  • Extend support for additional schema formats and registries.
  • Develop a CLI for easier schema management.

Example Integration with Schema Manager

For an example, see the integration section in the README to learn how Schema Manager can fit into Kafka-based applications with multiple microservices.

Questions?

I'm happy to answer any questions or dive into specifics if you’re interested. Let me know if this sounds useful to you or if there's anything you'd add! I'm particularly looking for feedback on the project, so any insights or suggestions would be greatly appreciated.

The project is open-source under the MIT license, so please check the GitHub repository for more details. Your contributions, suggestions, and insights are very welcome!

Top comments (0)