<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Build with Reason — Kartik Mavani</title><description>Software, systems, cloud and AI — with a focus on the reasoning behind modern technology.</description><link>https://buildwithreason.com</link><language>en-us</language><copyright>© 2026 Kartik Mavani</copyright><item><title>RAG Is Not a Database</title><link>https://buildwithreason.com/writing/rag-is-not-a-database</link><guid isPermaLink="true">https://buildwithreason.com/writing/rag-is-not-a-database</guid><description>Retrieval-augmented generation is usually built as though a vector store were a database with fuzzy matching. It is a ranking system, and treating it as one changes almost every design decision.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>AI Engineering</category><category>RAG</category><category>Retrieval</category><category>LLM Applications</category><category>Search</category><author>Kartik Mavani</author></item><item><title>Distributed Locks: What They Actually Guarantee</title><link>https://buildwithreason.com/writing/distributed-locks</link><guid isPermaLink="true">https://buildwithreason.com/writing/distributed-locks</guid><description>A distributed lock cannot promise mutual exclusion, because it cannot control the process holding it. What it can do is still useful — provided you know which of the two problems you have.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate><category>Distributed Systems</category><category>Coordination</category><category>Consistency</category><category>Reliability</category><category>Redis</category><author>Kartik Mavani</author></item><item><title>Why Kafka Ordering Is Harder Than It Looks</title><link>https://buildwithreason.com/writing/kafka-ordering</link><guid isPermaLink="true">https://buildwithreason.com/writing/kafka-ordering</guid><description>Kafka gives you ordering per partition. Almost every ordering bug in production comes from a gap between that guarantee and the one people believed they had.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>Distributed Systems</category><category>Kafka</category><category>Messaging</category><category>Idempotency</category><category>Consistency</category><author>Kartik Mavani</author></item><item><title>What Happens Beneath the Abstractions</title><link>https://buildwithreason.com/writing/what-happens-beneath-the-abstractions</link><guid isPermaLink="true">https://buildwithreason.com/writing/what-happens-beneath-the-abstractions</guid><description>Every abstraction is a bet about what you will never need to know. Understanding the bet is most of what separates engineers who can debug a system from engineers who can only operate one.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate><category>Engineering Thinking</category><category>Abstractions</category><category>Systems Thinking</category><category>Architecture</category><author>Kartik Mavani</author></item></channel></rss>