<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Kaushik's Bits & Pieces]]></title><description><![CDATA[A CTO’s notebook on databases, data movement, and the small optimizations that make big systems go.]]></description><link>https://iska.is</link><image><url>https://substackcdn.com/image/fetch/$s_!GzY2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e5be07-b719-478c-840d-89ffe96c4f0e_800x800.jpeg</url><title>Kaushik&apos;s Bits &amp; Pieces</title><link>https://iska.is</link></image><generator>Substack</generator><lastBuildDate>Wed, 08 Apr 2026 19:25:30 GMT</lastBuildDate><atom:link href="https://iska.is/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Kaushik Iska]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[iskakaushik@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[iskakaushik@substack.com]]></itunes:email><itunes:name><![CDATA[Kaushik Iska]]></itunes:name></itunes:owner><itunes:author><![CDATA[Kaushik Iska]]></itunes:author><googleplay:owner><![CDATA[iskakaushik@substack.com]]></googleplay:owner><googleplay:email><![CDATA[iskakaushik@substack.com]]></googleplay:email><googleplay:author><![CDATA[Kaushik Iska]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Why Every PeerDB Cloud Tenant Still Gets a Private Postgres]]></title><description><![CDATA[&#8212;and why sticking with the &#8220;boring&#8221; choice lets us move faster]]></description><link>https://iska.is/p/why-every-peerdb-cloud-tenant-still</link><guid isPermaLink="false">https://iska.is/p/why-every-peerdb-cloud-tenant-still</guid><dc:creator><![CDATA[Kaushik Iska]]></dc:creator><pubDate>Fri, 16 May 2025 03:18:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u0Rs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m <strong>Kaushik Iska</strong>, co-founder and CTO of <strong><a href="https://peerdb.io/">PeerDB</a></strong> (YC S23), now part of <a href="https://clickhouse.com/blog/postgres-cdc-connector-clickpipes-public-beta?ref=dailydev">ClickHouse and powering Clickpipes</a>. PeerDB&#8217;s job is simple to describe and hard to build: we sit between an application&#8217;s Postgres and the rest of the data universe, streaming rows out in real time so users can analyze fresh data wherever they like. Inside each PeerDB deployment lives a <strong>catalog</strong>&#8212;a Postgres database that records every pipeline definition, credential, usage counter and a small slice of pre-aggregated analytics for quick dashboards. This essay is about that catalog and, more precisely, about the decision we made to give every customer their own logical database inside it.</p><div><hr></div><h4>Choosing the least-regret tenancy model</h4><p>When the first paying users arrived, we noticed three obvious ways to share Postgres:</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://iska.is/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Kaushik's Bits &amp; Pieces! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ul><li><p>Row-level multitenancy looked cheap but came with shared-statistics nightmares and the ever-present risk of one tenant&#8217;s bad query affecting everyone else.</p></li><li><p>Schema-per-tenant felt tidier until you tally up extension drift, <code>pg_namespace</code> bloat and global locks that turn ordinary DDL into a convoy.</p></li><li><p>Database-per-tenant promised hard isolation.</p></li></ul><p>We picked the last option and parked roughly eighty to a hundred tenant databases on a single RDS instance. (We run several of these instances, but the exact count is private.) We briefly considered a <strong>physical Postgres per tenant</strong> model&#8212;true single-tenant servers&#8212;but the economics were brutal for smaller customers, and nothing in our workload justified that burn.</p><div><hr></div><h4>What the catalog actually stores</h4><p>Because PeerDB merely coordinates data movement, not the data itself, the catalog is light. Every write is either metadata (a new pipeline, a rotated secret) or a counter that jumps once per batch moved. We store those counters <strong>already rolled-up</strong> so queries stay fast; the hottest table is still well under twenty-five gigabytes. If growth ever forces sharding, we&#8217;ll know long in advance, and until then we enjoy the luxury of Postgres doing exactly what it has done well for decades.</p><div><hr></div><h4>Shipping changes without roulette</h4><p>Our schema lives in a <code>refinery</code> migrations folder. During an upgrade the Kubernetes init-container for each service runs the pending migrations against its tenant databases and holds an advisory lock so one long migration can&#8217;t block its neighbors. The process is deterministic, self-healing, and&#8212;best of all&#8212;boringly repeatable.</p><div><hr></div><h4>Observability</h4><p>We began with <a href="https://www.datadoghq.com/">Datadog</a>; the swipe-your-card convenience was unbeatable, right up to the moment the bill wasn&#8217;t. Today our observability is powered <a href="https://clickhouse.com/blog/building-a-logging-platform-with-clickhouse-and-saving-millions-over-datadog">LogHouse and LightHouse</a>.</p><div><hr></div><h4>What has worked in practice</h4><p>First, <strong>a tiny fleet is easy to watch</strong>: a couple of RDS dashboards and a Grafana page tell us everything. Second, <strong>deep Postgres expertise pays compound interest</strong>. When a query plan misbehaves, someone on the team has already debugged that planner corner case in a past life. Third, <strong>our open-source posture matches the model</strong>; the public PeerDB repository assumes exactly this catalog layout, so what we dog-food is what we ship.</p><div><hr></div><h4>The trade-offs we live with</h4><p>Postgres connections are fat. In the early days, before we sized instances correctly, we lived in fear of exhausting the pool. Connection pooling and right-sizing bought back margin, but it was a lesson learned the noisy way. And while automation is good, <strong>wrangling hundreds of logical databases remains real work</strong>&#8212;from permissions audits to extension upgrades, there is no perfect autopilot yet.</p><div><hr></div><h4>Still the best deal in town</h4><p>Could we outgrow this design? Sure&#8212;success comes with new scaling puzzles. But the catalog will tell us long before anything combusts, and the escape hatches (read replicas, horizontal shards, even separate servers for large tenants) are well-trodden Postgres terrain. Until that day, every new PeerDB-Cloud customer gets a freshly minted logical database, a clear blast radius, and the quiet confidence that <strong>boring infrastructure lets the interesting work happen elsewhere</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u0Rs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u0Rs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!u0Rs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!u0Rs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!u0Rs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u0Rs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png" width="417" height="417" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:417,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!u0Rs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!u0Rs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!u0Rs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!u0Rs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F430ff652-4110-4079-a7b2-d8e2476e3c69_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>A single RDS instance, many isolated tenant databases: hard walls, clear blast-radius, zero surprise coupling.</em></figcaption></figure></div><p>See you in the next piece,<br>Kaushik</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://iska.is/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Kaushik's Bits &amp; Pieces! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Welcome to Kaushik’s Bits & Pieces]]></title><description><![CDATA[Who I Am & Why I&#8217;m Writing]]></description><link>https://iska.is/p/welcome-to-kaushiks-bits-and-pieces</link><guid isPermaLink="false">https://iska.is/p/welcome-to-kaushiks-bits-and-pieces</guid><dc:creator><![CDATA[Kaushik Iska]]></dc:creator><pubDate>Fri, 16 May 2025 03:05:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cJa-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>Who I Am &amp; Why I&#8217;m Writing</h1><p>I&#8217;m <strong>Kaushik Iska </strong>&#8212; software engineer, YC-founder, CTO of PeerDB (acquired by ClickHouse), ex-Flutter contributor, and parent to energetic twin toddlers. Over the years I&#8217;ve filled private notebooks with database oddities, GPU experiments, and performance war stories. Friends kept nudging me to put the interesting bits somewhere public.</p><p><strong>Why now?</strong> Honestly&#8212;why <em>not</em> now? The infrastructure world feels especially exciting: lot of changes and lot more momentum in every area of software development. I have a backlog of side projects I want to talk and share about.</p><h1>What to Expect</h1><ul><li><p><strong>Architecture case notes</strong> from PeerDB, ClickHouse, and weekend side projects&#8212;including the dead ends and rollbacks.</p></li><li><p><strong>Deep-tech essays</strong> on Postgres internals, golang oddities, GPU pipelines, distributed tracing, and the small algorithmic tricks that turn <em>works</em> into <em>fast</em>.</p></li><li><p><strong>Reflections on balance</strong>: building systems while raising twins and staying (mostly) sane.</p></li></ul><p>I&#8217;ll post roughly <strong>once a month</strong>. Rather than dumping raw code, I&#8217;ll focus on the thought process&#8212;trade-offs, mental models, and lessons learned.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cJa-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cJa-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cJa-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cJa-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cJa-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cJa-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg" width="446" height="446" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:446,&quot;bytes&quot;:10996497,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://iskakaushik.substack.com/i/163681535?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cJa-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cJa-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cJa-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cJa-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4e66900-9527-4b30-9f80-37306f4a8782_4898x4898.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>See you in the next piece,<br>Kaushik</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://iska.is/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Kaushik's Bits &amp; Pieces! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>