<?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>Forem: Christian Wagner</title>
    <description>The latest articles on Forem by Christian Wagner (@chrhiswagat).</description>
    <link>https://forem.com/chrhiswagat</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%2F3690591%2F0c9c35b7-ce3a-4b08-a1d9-49b3a870d182.png</url>
      <title>Forem: Christian Wagner</title>
      <link>https://forem.com/chrhiswagat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/chrhiswagat"/>
    <language>en</language>
    <item>
      <title>Stop Manually Tracing Azure Synapse Dependencies</title>
      <dc:creator>Christian Wagner</dc:creator>
      <pubDate>Fri, 02 Jan 2026 23:44:47 +0000</pubDate>
      <link>https://forem.com/chrhiswagat/stop-manually-tracing-azure-synapse-dependencies-p2e</link>
      <guid>https://forem.com/chrhiswagat/stop-manually-tracing-azure-synapse-dependencies-p2e</guid>
      <description>&lt;p&gt;Tracing dependencies across 50+ DWH objects manually takes time, and documentation is outdated the moment you finish. I stopped after 20.&lt;br&gt;
Existing lineage tools struggle with complex stored procedures, are expensive, or cloud-dependent. So I built my own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Build&lt;/strong&gt;&lt;br&gt;
Used Claude Code. More time-consuming than expected: planning, building, changing, and lots of testing — especially keeping parsing rules stable without regression after each change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical Specs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YAML Parser: Extraction rules defined in YAML — no need to touch Python to add new SQL patterns&lt;/li&gt;
&lt;li&gt;Stack: Python metadata-driven + React Flow UI&lt;/li&gt;
&lt;li&gt;Privacy: Client-side/local in import mode, or direct connect to DWH&lt;/li&gt;
&lt;li&gt;Scope: Object-level (column-level not supported)&lt;/li&gt;
&lt;li&gt;Tested with: Azure Synapse&lt;/li&gt;
&lt;li&gt;Deployment: Docker-ready&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5na34cvssw6e56br01sk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5na34cvssw6e56br01sk.png" alt=" " width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;br&gt;
Easy dependency analysis. More use cases to follow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get It&lt;/strong&gt;&lt;br&gt;
Full source released under MIT.&lt;br&gt;
👉 &lt;a href="https://chrisdevrepo.github.io/data_lineage/" rel="noopener noreferrer"&gt;GitRepo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repo, live demo, and video walkthrough all linked there.&lt;br&gt;
Feedback welcome — it’s yours to explore or fork.&lt;/p&gt;

&lt;p&gt;Greetings,&lt;br&gt;
Christian&lt;/p&gt;

</description>
      <category>database</category>
      <category>sql</category>
      <category>opensource</category>
      <category>dataengineering</category>
    </item>
  </channel>
</rss>
