<?xml version="1.0" encoding="UTF-8"?><oembed><type>video</type><version>1.0</version><html>&lt;iframe src=&quot;https://www.loom.com/embed/2f5badd2168546dba687e2844ebc2d46&quot; frameborder=&quot;0&quot; width=&quot;1920&quot; height=&quot;1440&quot; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;</html><height>1440</height><width>1920</width><provider_name>Loom</provider_name><provider_url>https://www.loom.com</provider_url><thumbnail_height>1440</thumbnail_height><thumbnail_width>1920</thumbnail_width><thumbnail_url>https://cdn.loom.com/sessions/thumbnails/2f5badd2168546dba687e2844ebc2d46-75880df0e054a4e8.gif</thumbnail_url><duration>106.965</duration><title>Building a Relation Index for Live Preview</title><description>This Loom explains the approach to improve relation lookups by splitting the work into three pull requests: creating a cache relation index, implementing the live preview, and adding support for reading view. The key motivation is that Roam relation queries are asynchronous with a cache, while Obsidian reads relations synchronously, making repeated JSON relation reads too expensive across many wiki links. It discusses a Discourse Context Panel workaround that runs once per file open, but notes that pages with many notes can lead to O(N x M) behavior. To address this, the team builds a relation index mapping relations like A to B and C to A, so lookup time becomes about 01 and JSON parsing happens only once.</description></oembed>