<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Charles Colella</title>
    <description>The latest articles on DEV Community by Charles Colella (@charlescol).</description>
    <link>https://dev.to/charlescol</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2378481%2F79bda473-8ed0-4370-a622-a43b14366894.png</url>
      <title>DEV Community: Charles Colella</title>
      <link>https://dev.to/charlescol</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/charlescol"/>
    <language>en</language>
    <item>
      <title>Schema Manager: Centralize Schemas in a Repository with Support for Schema Registry Integration</title>
      <dc:creator>Charles Colella</dc:creator>
      <pubDate>Fri, 08 Nov 2024 00:08:28 +0000</pubDate>
      <link>https://dev.to/charlescol/schema-manager-centralize-schemas-in-a-repository-with-support-for-schema-registry-integration-1jhn</link>
      <guid>https://dev.to/charlescol/schema-manager-centralize-schemas-in-a-repository-with-support-for-schema-registry-integration-1jhn</guid>
      <description>&lt;p&gt;Hey all! I’d love to share a project I’ve been working on called &lt;strong&gt;Schema Manager&lt;/strong&gt;. You can check out the full project on GitHub here: &lt;a href="https://github.com/charlescol/schema-manager/" rel="noopener noreferrer"&gt;Schema Manager GitHub Repo&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why Schema Manager?
&lt;/h1&gt;

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

&lt;ul&gt;
&lt;li&gt;A single repository storing all schema versions.&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;Microservices that simply consume the schemas they need&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Quick Start
&lt;/h1&gt;

&lt;p&gt;For an example repository using the Schema Manager:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/charlescol/schema-manager-example.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The Schema Manager is distributed via NPM:&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @charlescol/schema-manager&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h1&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Future Plans&lt;br&gt;
&lt;/h1&gt;

&lt;p&gt;Schema Manager currently supports &lt;strong&gt;Protobuf&lt;/strong&gt; and &lt;strong&gt;Avro&lt;/strong&gt; schemas, integrated with &lt;strong&gt;Confluent Schema Registry&lt;/strong&gt;. We plan to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extend support for additional schema formats and registries.&lt;/li&gt;
&lt;li&gt;Develop a CLI for easier schema management.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Example Integration with Schema Manager
&lt;/h1&gt;

&lt;p&gt;For an example, see the &lt;a href="https://github.com/charlescol/schema-manager?tab=readme-ov-file#example-of-integration-with-schema-manager" rel="noopener noreferrer"&gt;integration section in the README&lt;/a&gt; to learn how Schema Manager can fit into Kafka-based applications with multiple microservices.&lt;/p&gt;

&lt;h1&gt;
  
  
  Questions?
&lt;/h1&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;The project is open-source under the MIT license, so please check the &lt;a href="https://github.com/charlescol/schema-manager" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; for more details. Your contributions, suggestions, and insights are very welcome!&lt;/p&gt;

</description>
      <category>kafka</category>
      <category>microservices</category>
      <category>architecture</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
