<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
      <title>Zhu Yuechen&#039;s Tech Notes</title>
      <link>https://yuechen-tech-notes.pages.dev</link>
      <description>Last 10 notes on Zhu Yuechen&#039;s Tech Notes</description>
      <generator>Quartz -- quartz.jzhao.xyz</generator>
      <item>
    <title>Zhu Yuechen&#039;s Tech Notes</title>
    <link>https://yuechen-tech-notes.pages.dev/</link>
    <guid>https://yuechen-tech-notes.pages.dev/</guid>
    <description><![CDATA[ Welcome to my second brain — a collection of engineering notes from work, side projects, and things I’ve learned the hard way. ]]></description>
    <pubDate>Sun, 26 Apr 2026 14:22:48 GMT</pubDate>
  </item><item>
    <title>Tagging Convention</title>
    <link>https://yuechen-tech-notes.pages.dev/tagging-convention</link>
    <guid>https://yuechen-tech-notes.pages.dev/tagging-convention</guid>
    <description><![CDATA[ Tags are how you filter across folders. The folder is where a note lives; tags are what it’s about. A note can have multiple tags. ]]></description>
    <pubDate>Sun, 26 Apr 2026 14:22:48 GMT</pubDate>
  </item><item>
    <title>Site Workflow</title>
    <link>https://yuechen-tech-notes.pages.dev/workflow</link>
    <guid>https://yuechen-tech-notes.pages.dev/workflow</guid>
    <description><![CDATA[ Reference for adding and maintaining content on this site. ]]></description>
    <pubDate>Sun, 26 Apr 2026 14:22:48 GMT</pubDate>
  </item><item>
    <title>OpenFGA (ReBAC)</title>
    <link>https://yuechen-tech-notes.pages.dev/auth/openfga</link>
    <guid>https://yuechen-tech-notes.pages.dev/auth/openfga</guid>
    <description><![CDATA[ What it is OpenFGA implements Relationship-based Access Control (ReBAC) from Google’s Zanzibar paper. ]]></description>
    <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
  </item><item>
    <title>Metabase H2 → PostgreSQL RDS Migration</title>
    <link>https://yuechen-tech-notes.pages.dev/databases/metabase-h2-to-postgres</link>
    <guid>https://yuechen-tech-notes.pages.dev/databases/metabase-h2-to-postgres</guid>
    <description><![CDATA[ H2 file layout metabase.db.mv.db — main data file metabase.db.trace.db — transaction logs Pre-migration uptime &amp;&amp; top -bn1 | head -20 # system health sudo du -sh /metabase.db/ # size check Size → RDS instance sizing: &lt;500MB small, 500MB–2GB medium, &gt;2GB large. ]]></description>
    <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
  </item><item>
    <title>Mongoose Schema vs TypeScript Interface</title>
    <link>https://yuechen-tech-notes.pages.dev/databases/mongodb/schema-vs-interface</link>
    <guid>https://yuechen-tech-notes.pages.dev/databases/mongodb/schema-vs-interface</guid>
    <description><![CDATA[ The silent ignorer If a field exists in the TypeScript interface but not in the Mongoose schema, Mongoose silently drops it on save(). ]]></description>
    <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
  </item><item>
    <title>Cache Invalidation After Direct SQL Updates</title>
    <link>https://yuechen-tech-notes.pages.dev/databases/redis/cache-invalidation-sql</link>
    <guid>https://yuechen-tech-notes.pages.dev/databases/redis/cache-invalidation-sql</guid>
    <description><![CDATA[ What happened Direct SQL fix to update_exclusions corrected the DB, but Redis still held stale data. ]]></description>
    <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
  </item><item>
    <title>Use context.Background() for Redis Cleanup Operations</title>
    <link>https://yuechen-tech-notes.pages.dev/databases/redis/context-independent-cleanup</link>
    <guid>https://yuechen-tech-notes.pages.dev/databases/redis/context-independent-cleanup</guid>
    <description><![CDATA[ Problem Warning Silent failure — If the request context is cancelled (timeout, panic), Del returns immediately with no error — the lock is never released, the queue backs up, consumers stall. ]]></description>
    <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
  </item><item>
    <title>Redis Logical Databases &amp; Debugging Locks</title>
    <link>https://yuechen-tech-notes.pages.dev/databases/redis/logical-databases</link>
    <guid>https://yuechen-tech-notes.pages.dev/databases/redis/logical-databases</guid>
    <description><![CDATA[ Logical databases Redis supports databases 0–15 in a single instance — separate namespaces, no key collisions. ]]></description>
    <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
  </item><item>
    <title>Deduplicating Messages Across Pods with Redis SETNX</title>
    <link>https://yuechen-tech-notes.pages.dev/databases/redis/setnx-dedup-multi-pod</link>
    <guid>https://yuechen-tech-notes.pages.dev/databases/redis/setnx-dedup-multi-pod</guid>
    <description><![CDATA[ Problem Scaled from 1 → 3 replicas. Started getting 3 duplicate polling messages every 30 seconds. ]]></description>
    <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
  </item>
    </channel>
  </rss>