<?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:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Vignesh K B on Medium]]></title>
        <description><![CDATA[Stories by Vignesh K B on Medium]]></description>
        <link>https://medium.com/@vigneshwiki07?source=rss-8923fbb56c47------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*pO3BKsKJ0uTltbe86pX02A.png</url>
            <title>Stories by Vignesh K B on Medium</title>
            <link>https://medium.com/@vigneshwiki07?source=rss-8923fbb56c47------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 16:53:34 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@vigneshwiki07/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Moving GenAI from Prototype to Production: A Guide to Enterprise Reliability Engineering]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://blog.stackademic.com/moving-genai-from-prototype-to-production-a-guide-to-enterprise-reliability-engineering-764db2ea5f9f?source=rss-8923fbb56c47------2"><img src="https://cdn-images-1.medium.com/max/2600/1*vXe5MtqWzWdF7Mz3BBzchw.png" width="2752"></a></p><p class="medium-feed-snippet">Building a working Generative AI prototype takes an afternoon; turning it into a production-grade service that handles scale&#x2026;</p><p class="medium-feed-link"><a href="https://blog.stackademic.com/moving-genai-from-prototype-to-production-a-guide-to-enterprise-reliability-engineering-764db2ea5f9f?source=rss-8923fbb56c47------2">Continue reading on Stackademic »</a></p></div>]]></description>
            <link>https://blog.stackademic.com/moving-genai-from-prototype-to-production-a-guide-to-enterprise-reliability-engineering-764db2ea5f9f?source=rss-8923fbb56c47------2</link>
            <guid isPermaLink="false">https://medium.com/p/764db2ea5f9f</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[generative-ai-tools]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[system-design-interview]]></category>
            <category><![CDATA[software-engineering]]></category>
            <dc:creator><![CDATA[Vignesh K B]]></dc:creator>
            <pubDate>Fri, 30 Oct 2026 14:50:23 GMT</pubDate>
            <atom:updated>2026-10-30T14:50:23.997Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Why ChatGPT Uses Server-Sent Events Over WebSockets]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://blog.stackademic.com/why-chatgpt-uses-server-sent-events-over-websockets-8e1d7b2245ed?source=rss-8923fbb56c47------2"><img src="https://cdn-images-1.medium.com/max/1024/1*xJbqhvYdwRwa9HWyQ4HYyQ.png" width="1024"></a></p><p class="medium-feed-snippet">When OpenAI launched ChatGPT, engineers everywhere took notice of the interface.</p><p class="medium-feed-link"><a href="https://blog.stackademic.com/why-chatgpt-uses-server-sent-events-over-websockets-8e1d7b2245ed?source=rss-8923fbb56c47------2">Continue reading on Stackademic »</a></p></div>]]></description>
            <link>https://blog.stackademic.com/why-chatgpt-uses-server-sent-events-over-websockets-8e1d7b2245ed?source=rss-8923fbb56c47------2</link>
            <guid isPermaLink="false">https://medium.com/p/8e1d7b2245ed</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[llm-stream]]></category>
            <category><![CDATA[server-sent-events]]></category>
            <dc:creator><![CDATA[Vignesh K B]]></dc:creator>
            <pubDate>Sun, 26 Jul 2026 13:11:01 GMT</pubDate>
            <atom:updated>2026-07-30T09:56:27.357Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Calling APIs Directly: Why Your Enterprise LLM Strategy Needs a Multi-Tenant Gateway.]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://ai.plainenglish.io/stop-calling-apis-directly-why-your-enterprise-llm-strategy-needs-a-multi-tenant-gateway-09af893afaf0?source=rss-8923fbb56c47------2"><img src="https://cdn-images-1.medium.com/max/1536/1*b1VmagWdizfPKpIWZzxAkA.png" width="1536"></a></p><p class="medium-feed-snippet">Every engineering organization begins its generative AI journey the same way: a senior developer wraps an official SDK in a lightweight&#x2026;</p><p class="medium-feed-link"><a href="https://ai.plainenglish.io/stop-calling-apis-directly-why-your-enterprise-llm-strategy-needs-a-multi-tenant-gateway-09af893afaf0?source=rss-8923fbb56c47------2">Continue reading on Artificial Intelligence in Plain English »</a></p></div>]]></description>
            <link>https://ai.plainenglish.io/stop-calling-apis-directly-why-your-enterprise-llm-strategy-needs-a-multi-tenant-gateway-09af893afaf0?source=rss-8923fbb56c47------2</link>
            <guid isPermaLink="false">https://medium.com/p/09af893afaf0</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[backend-development]]></category>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[system-design-interview]]></category>
            <category><![CDATA[llm]]></category>
            <dc:creator><![CDATA[Vignesh K B]]></dc:creator>
            <pubDate>Sat, 04 Jul 2026 12:52:35 GMT</pubDate>
            <atom:updated>2026-07-06T06:59:54.930Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[6 Common Causes of Node.js Memory Leaks and How to Debug Them]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/6-common-causes-of-node-js-memory-leaks-and-how-to-debug-them-244435aabec8?source=rss-8923fbb56c47------2"><img src="https://cdn-images-1.medium.com/max/2600/1*QeS-4LeJzI8W1GdZ_Jf-XA.png" width="2816"></a></p><p class="medium-feed-snippet">What is a Memory Leak in Node.js?</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/6-common-causes-of-node-js-memory-leaks-and-how-to-debug-them-244435aabec8?source=rss-8923fbb56c47------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/6-common-causes-of-node-js-memory-leaks-and-how-to-debug-them-244435aabec8?source=rss-8923fbb56c47------2</link>
            <guid isPermaLink="false">https://medium.com/p/244435aabec8</guid>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[backend-development]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Vignesh K B]]></dc:creator>
            <pubDate>Tue, 30 Jun 2026 13:01:01 GMT</pubDate>
            <atom:updated>2026-07-06T06:31:48.335Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[12 LLM Concepts Every AI Engineer Must Know]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://ai.plainenglish.io/12-llm-concepts-every-ai-engineer-must-know-0e609dec8a23?source=rss-8923fbb56c47------2"><img src="https://cdn-images-1.medium.com/max/1024/1*BEKPWGAImLKHO1sb4yJopw.png" width="1024"></a></p><p class="medium-feed-snippet">Non member use this link</p><p class="medium-feed-link"><a href="https://ai.plainenglish.io/12-llm-concepts-every-ai-engineer-must-know-0e609dec8a23?source=rss-8923fbb56c47------2">Continue reading on Artificial Intelligence in Plain English »</a></p></div>]]></description>
            <link>https://ai.plainenglish.io/12-llm-concepts-every-ai-engineer-must-know-0e609dec8a23?source=rss-8923fbb56c47------2</link>
            <guid isPermaLink="false">https://medium.com/p/0e609dec8a23</guid>
            <category><![CDATA[llm-applications]]></category>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[ai-engineering]]></category>
            <category><![CDATA[claude]]></category>
            <category><![CDATA[ai-agent]]></category>
            <dc:creator><![CDATA[Vignesh K B]]></dc:creator>
            <pubDate>Fri, 26 Jun 2026 12:41:00 GMT</pubDate>
            <atom:updated>2026-06-26T12:41:00.777Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Kafka ISR Explained: A Deep Dive for Engineers Who Actually Use It]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://blog.stackademic.com/kafka-isr-explained-a-deep-dive-for-engineers-who-actually-use-it-37a9bf0021cf?source=rss-8923fbb56c47------2"><img src="https://cdn-images-1.medium.com/max/1536/1*2Gv1nXvuE8HPQ1wqaEcrCA.png" width="1536"></a></p><p class="medium-feed-snippet">In the world of distributed event streaming, &#x201C;durability&#x201D; is the currency.</p><p class="medium-feed-link"><a href="https://blog.stackademic.com/kafka-isr-explained-a-deep-dive-for-engineers-who-actually-use-it-37a9bf0021cf?source=rss-8923fbb56c47------2">Continue reading on Stackademic »</a></p></div>]]></description>
            <link>https://blog.stackademic.com/kafka-isr-explained-a-deep-dive-for-engineers-who-actually-use-it-37a9bf0021cf?source=rss-8923fbb56c47------2</link>
            <guid isPermaLink="false">https://medium.com/p/37a9bf0021cf</guid>
            <category><![CDATA[backend-development]]></category>
            <category><![CDATA[apache-kafka]]></category>
            <category><![CDATA[data-engineering]]></category>
            <category><![CDATA[distributed-systems]]></category>
            <category><![CDATA[message-broker]]></category>
            <dc:creator><![CDATA[Vignesh K B]]></dc:creator>
            <pubDate>Mon, 22 Jun 2026 12:51:00 GMT</pubDate>
            <atom:updated>2026-06-22T12:51:00.869Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[What I Learned Building a RAG System from Scratch: Lessons from the Trenches]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://python.plainenglish.io/what-i-learned-building-a-rag-system-from-scratch-lessons-from-the-trenches-4b5a35d9c939?source=rss-8923fbb56c47------2"><img src="https://cdn-images-1.medium.com/max/1024/1*dg86vPIwFlAX3l4SUMpOpw.png" width="1024"></a></p><p class="medium-feed-snippet">In the last few months, building with LLMs has shifted from simple prompt engineering to architecting complex, reliable systems. My latest&#x2026;</p><p class="medium-feed-link"><a href="https://python.plainenglish.io/what-i-learned-building-a-rag-system-from-scratch-lessons-from-the-trenches-4b5a35d9c939?source=rss-8923fbb56c47------2">Continue reading on Python in Plain English »</a></p></div>]]></description>
            <link>https://python.plainenglish.io/what-i-learned-building-a-rag-system-from-scratch-lessons-from-the-trenches-4b5a35d9c939?source=rss-8923fbb56c47------2</link>
            <guid isPermaLink="false">https://medium.com/p/4b5a35d9c939</guid>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[generative-ai-tools]]></category>
            <category><![CDATA[rags]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Vignesh K B]]></dc:creator>
            <pubDate>Fri, 19 Jun 2026 12:39:39 GMT</pubDate>
            <atom:updated>2026-07-07T06:08:51.575Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[BFF (Backend for Frontend) Architecture]]></title>
            <link>https://medium.com/front-end-weekly/bff-backend-for-frontend-architecture-900d188c11dc?source=rss-8923fbb56c47------2</link>
            <guid isPermaLink="false">https://medium.com/p/900d188c11dc</guid>
            <category><![CDATA[bff]]></category>
            <category><![CDATA[api-integration]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[graphql]]></category>
            <category><![CDATA[front-end-development]]></category>
            <dc:creator><![CDATA[Vignesh K B]]></dc:creator>
            <pubDate>Sat, 18 Apr 2026 18:13:11 GMT</pubDate>
            <atom:updated>2026-07-10T18:35:34.792Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aT5ky65pKMMZBmLVktEUpw.png" /><figcaption>bff</figcaption></figure><p>BFF is a pattern where you create <strong>dedicated backend services for each type of frontend client</strong> rather than having one general-purpose API.</p><h3>The Problem It Solves</h3><p>A single API tries to serve everyone — mobile, web, third-party — but each client has different needs:</p><ul><li>Mobile needs lightweight, battery-efficient payloads</li><li>Web dashboards need rich, aggregated data</li><li>Third-party clients need stable, versioned contracts</li></ul><p>One API becomes bloated trying to satisfy all of them.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fupscri.be%2Ff%2F788447%3Fas_embed%3Dtrue&amp;dntp=1&amp;display_name=Upscribe&amp;url=https%3A%2F%2Fupscri.be%2F788447%2F&amp;type=text%2Fhtml&amp;schema=upscri" width="800" height="400" frameborder="0" scrolling="no"><a href="https://medium.com/media/18214d8333adbb5668f31791a3202b60/href">https://medium.com/media/18214d8333adbb5668f31791a3202b60/href</a></iframe><h3>How BFF Works</h3><p>Each frontend gets its <strong>own BFF layer</strong> that:</p><ul><li>Aggregates calls to multiple downstream services</li><li>Shapes the response to exactly what that client needs</li><li>Handles auth, caching, and error formatting per client</li></ul><h3>Key Responsibilities of a BFF</h3><p>Responsibility Example <strong>Data aggregation</strong> Combine user + orders + products in one call <strong>Response shaping</strong> Send only 5 fields to mobile, 20 fields to web <strong>Protocol translation</strong> REST on the outside, gRPC internally <strong>Auth handling</strong> Session tokens for web, JWT for mobile <strong>Error formatting</strong> Friendly messages for UI vs raw codes for APIs</p><h3>BFF vs API Gateway</h3><p>API Gateway BFF Purpose Routing, rate limiting, auth Business logic, data shaping Owned by Platform/infra team Frontend team Per client? No — shared Yes — one per client type Logic inside? Minimal Rich aggregation logic</p><p>They’re <strong>not competing</strong> — you often use both. The API Gateway sits in front of all BFFs.</p><h3>When to Use BFF</h3><p><strong>Good fit when:</strong></p><ul><li>You have multiple client types (web, mobile, TV, etc.)</li><li>Clients have very different data needs</li><li>Frontend teams want autonomy over their API contract</li><li>You need to migrate from a monolith gradually</li></ul><p><strong>Not worth it when:</strong></p><ul><li>You have a single client type</li><li>Your app is small/simple</li><li>You can’t afford the operational overhead of extra services</li></ul><h3>Real-World Example (Next.js)</h3><p>For a freelance project, a BFF is typically your <strong>Next.js API routes or Route Handlers</strong> — they call your raw backend services and return shaped, client-ready responses. That’s BFF in practice, even if you don’t call it that.</p><pre>// app/api/dashboard/route.ts — your BFF layer<br>export async function GET(req: Request) {<br>  const [user, orders, stats] = await Promise.all([<br>    fetchUser(),<br>    fetchOrders(),<br>    fetchStats(),<br>  ]);<br>// Shape exactly what the web dashboard needs<br>  return Response.json({ user, recentOrders: orders.slice(0, 5), stats });<br>}</pre><p>The core idea: <strong>your frontend should never have to make 5 calls when 1 will do</strong> — that’s the BFF’s job.</p><p>Thanks for reading this blog, if you think this blog helped you <strong>give a clap,</strong>that will help me to write more good blog like this and allow <strong>follow me to get email alerts.</strong></p><p><a href="https://buymeacoffee.com/vigneshwik0">https://buymeacoffee.com/vigneshwik0</a></p><p><strong>LinkedIn</strong>: <a href="https://www.linkedin.com/in/vigneshbalaji07/">https://www.linkedin.com/in/vigneshbalaji07/</a><br> <strong>GitHub</strong>: <a href="https://www.github.com/vigneshkb07">https://www.github.com/vigneshkb07</a><br> <strong>X</strong>: <a href="https://x.com/vigneshbaladev">https://x.com/vigneshbaladev</a><br> <strong>Website</strong>: <a href="https://vigneshkb-portfolio.web.app/">https://vigneshkb-portfolio.web.app/</a><br> <strong>1:1 Topmate</strong>: <a href="https://topmate.io/vignesh_k_b">https://topmate.io/vignesh_k_b</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=900d188c11dc" width="1" height="1" alt=""><hr><p><a href="https://medium.com/front-end-weekly/bff-backend-for-frontend-architecture-900d188c11dc">BFF (Backend for Frontend) Architecture</a> was originally published in <a href="https://medium.com/front-end-weekly">Frontend Weekly</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Building a Production-Grade useChatStream Hook (Like ChatGPT)]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/building-a-production-grade-usechatstream-hook-like-chatgpt-3632b4b4c9ee?source=rss-8923fbb56c47------2"><img src="https://cdn-images-1.medium.com/max/2600/1*sdu6OSiFwOc11SE0EU6qIQ.png" width="2816"></a></p><p class="medium-feed-snippet">Modern AI apps feel fast not because they are fast, but because they stream responses in real time.</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/building-a-production-grade-usechatstream-hook-like-chatgpt-3632b4b4c9ee?source=rss-8923fbb56c47------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/building-a-production-grade-usechatstream-hook-like-chatgpt-3632b4b4c9ee?source=rss-8923fbb56c47------2</link>
            <guid isPermaLink="false">https://medium.com/p/3632b4b4c9ee</guid>
            <category><![CDATA[generative-ai-tools]]></category>
            <category><![CDATA[react-hook]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[system-design-interview]]></category>
            <dc:creator><![CDATA[Vignesh K B]]></dc:creator>
            <pubDate>Tue, 14 Apr 2026 13:32:42 GMT</pubDate>
            <atom:updated>2026-09-12T03:37:00.139Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[System Design Primer: Building the WhatsApp Web Frontend]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/system-design-primer-building-the-whatsapp-web-frontend-a18ac8431986?source=rss-8923fbb56c47------2"><img src="https://cdn-images-1.medium.com/max/1440/1*LHdPyOPK57m0FNvPUc_xWg.png" width="1440"></a></p><p class="medium-feed-snippet">For non-member use this link</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/system-design-primer-building-the-whatsapp-web-frontend-a18ac8431986?source=rss-8923fbb56c47------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/system-design-primer-building-the-whatsapp-web-frontend-a18ac8431986?source=rss-8923fbb56c47------2</link>
            <guid isPermaLink="false">https://medium.com/p/a18ac8431986</guid>
            <category><![CDATA[design-thinking]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[distributed-systems]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Vignesh K B]]></dc:creator>
            <pubDate>Thu, 02 Apr 2026 12:06:01 GMT</pubDate>
            <atom:updated>2026-06-26T10:52:21.993Z</atom:updated>
        </item>
    </channel>
</rss>