<?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: Francis Marzynski</title>
    <description>The latest articles on DEV Community by Francis Marzynski (@francismarzynski).</description>
    <link>https://dev.to/francismarzynski</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4125884%2Fe8350c8f-4e6b-41ed-aec2-580feadc31e3.png</url>
      <title>DEV Community: Francis Marzynski</title>
      <link>https://dev.to/francismarzynski</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/francismarzynski"/>
    <language>en</language>
    <item>
      <title>Keeping Markdown as the source of truth once decisions start referencing each other</title>
      <dc:creator>Francis Marzynski</dc:creator>
      <pubDate>Tue, 15 Sep 2026 08:49:55 +0000</pubDate>
      <link>https://dev.to/francismarzynski/keeping-markdown-as-the-source-of-truth-once-decisions-start-referencing-each-other-42k8</link>
      <guid>https://dev.to/francismarzynski/keeping-markdown-as-the-source-of-truth-once-decisions-start-referencing-each-other-42k8</guid>
      <description>&lt;p&gt;A few people who reached out about Operating Memory this month are all building some version of the same thing: decisions or ADRs kept as files in git, read by hand for a while, until the files start referencing each other. This one supersedes that one. This one only applies if the other one holds. This one contradicts a decision from three months ago that nobody remembered to update.&lt;/p&gt;

&lt;p&gt;At that point the question is always the same. Keep reading the files by hand, or reach for a graph or triple store to hold the relationships.&lt;/p&gt;

&lt;p&gt;Operating Memory's answer so far is neither, and I want to write down why rather than just ship an opinion.&lt;/p&gt;

&lt;p&gt;The files stay canonical. Every import is a revision, not an overwrite, so supersession is explicit: a new decision can say what it replaces, and the old one does not disappear, it becomes historical. That's stored relationally, in plain SQL, because supersession, applicability, and "what is current right now" are exactly the kind of question a relational model answers well, and it means nothing has to leave the files to be true.&lt;/p&gt;

&lt;p&gt;What that doesn't solve is the harder version of the question: not "what's current" but "what else changes if this one does." Cross-references, multi-hop chains, the reasoning graph between decisions rather than just their sequence. That's the part a graph model is actually built for, and it's also the part I don't think should be added by default, because a graph is one more structure to keep in sync with the files, and "keep it in sync" is the exact problem this project exists to avoid creating a second version of.&lt;/p&gt;

&lt;p&gt;So the current approach is to test it against real cases instead of assuming the answer. Pick a handful of actual cross-referencing, multi-hop questions people have, and see whether a graph read on top of the relational core answers them meaningfully faster or more accurately than walking the relational links by hand. If it doesn't earn its keep on real questions, it doesn't go in.&lt;/p&gt;

&lt;p&gt;I don't have a clean verdict yet. What I do have is a relational core that already tracks revisions and supersession without a second database, and a short list of real questions to test the graph idea against before building it.&lt;/p&gt;

&lt;p&gt;If you've built something similar: did a graph or triple store end up worth the sync cost for you, or did it become one more thing to maintain?&lt;/p&gt;

&lt;p&gt;Repo, if useful: github.com/FrancisMarzynski/operating-memory-public&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
      <category>database</category>
    </item>
  </channel>
</rss>
