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
The Schema Manager is distributed via NPM:
npm install @charlescol/schema-manager
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!