<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Ankit Rana | Mechanical Sympathy</title><description>System architecture and engineering logs by Ankit Rana.</description><link>https://ankit-rana.com/</link><language>en-us</language><item><title>Instrumenting AI Agents: Why the Apology Metric Is a First Class Reliability Signal</title><link>https://ankit-rana.com/logs/23-vector-db-vs-graphrag-global-sense-making/</link><guid isPermaLink="true">https://ankit-rana.com/logs/23-vector-db-vs-graphrag-global-sense-making/</guid><description>Track apology phrases as a first class SLO for AI agents: spikes reveal context starvation, timeout dropouts, and payload truncation across data boundaries.</description><pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate></item><item><title>The Expensive Cosplay of Local Models: True 3 AM Operational Cost of Hosting Llama-3</title><link>https://ankit-rana.com/logs/22-expensive-cosplay-local-llama-inference-tco/</link><guid isPermaLink="true">https://ankit-rana.com/logs/22-expensive-cosplay-local-llama-inference-tco/</guid><description>Self-hosted Llama-70B looks cheap until VRAM, KV cache, and HBM bandwidth cap throughput. TCO is idle GPUs, batching latency, and ML infra on call.</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate></item><item><title>Databases Were Not Built for AI Agents: How LLMs Break Connection Pooling</title><link>https://ankit-rana.com/logs/21-llms-connection-pooling-ai-agents/</link><guid isPermaLink="true">https://ankit-rana.com/logs/21-llms-connection-pooling-ai-agents/</guid><description>Agents keep pooled DB connections open for LLM inference, exhausting pools and evicting buffer cache. Decouple reasoning from data, replicas, semantic layers.</description><pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Thread-per-Core Architecture: Why Extra Threads Eventually Destroy Throughput</title><link>https://ankit-rana.com/logs/20-thread-per-core-architecture/</link><guid isPermaLink="true">https://ankit-rana.com/logs/20-thread-per-core-architecture/</guid><description>Oversized thread pools stall: timeslicing, context switches, cache thrashing. Thread-per-core, CPU pinning, and async I/O match physical cores.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Branch Prediction: Why an if Inside a Hot Loop Costs Milliseconds</title><link>https://ankit-rana.com/logs/19-branch-prediction-loop-unrolling/</link><guid isPermaLink="true">https://ankit-rana.com/logs/19-branch-prediction-loop-unrolling/</guid><description>How CPU pipelining and branch predictors work, why mispredictions flush the pipeline, and how sorting, branchless code, and loop unrolling help.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate></item><item><title>CPU Caches and Spatial Locality: Why an Array is 3x Faster Than a Linked List for the Exact Same Big-O Complexity</title><link>https://ankit-rana.com/logs/18-cpu-caches-spatial-locality/</link><guid isPermaLink="true">https://ankit-rana.com/logs/18-cpu-caches-spatial-locality/</guid><description>Why arrays are faster than linked lists on real CPUs: cache lines, spatial locality, hardware prefetchers, and pointer chasing.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Virtual Memory and Lazy Allocation: Why RSS Matters More Than malloc()</title><link>https://ankit-rana.com/logs/17-virtual-memory-rss-vsz-oom-killer/</link><guid isPermaLink="true">https://ankit-rana.com/logs/17-virtual-memory-rss-vsz-oom-killer/</guid><description>How virtual memory promises work, why malloc() doesn&apos;t equal RAM, what page faults do, how lazy allocation overbooks memory, and why OOM kills by RSS.</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Cuckoo Filters: Cache-Friendly Membership Checks With Deletions</title><link>https://ankit-rana.com/logs/16-cuckoo-filters-architecture/</link><guid isPermaLink="true">https://ankit-rana.com/logs/16-cuckoo-filters-architecture/</guid><description>How Cuckoo filters work: fingerprints, two-bucket lookups, kick-out insertions, why they stay cache-friendly, and the real tradeoff of insertion failure.</description><pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Bloom Filters vs Counting Bloom Filters: When Deletions Kill Performance</title><link>https://ankit-rana.com/logs/15-bloom-filters-deletable-bloom-filters/</link><guid isPermaLink="true">https://ankit-rana.com/logs/15-bloom-filters-deletable-bloom-filters/</guid><description>Why counting (deletable) Bloom filters often lose in production: cache misses, random memory access, and better alternatives like hash tables or Cuckoo filters.</description><pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Pagination at Scale: Why OFFSET and SKIP Will Eventually Break Your API</title><link>https://ankit-rana.com/logs/14-pagination-offset-vs-cursor/</link><guid isPermaLink="true">https://ankit-rana.com/logs/14-pagination-offset-vs-cursor/</guid><description>Why OFFSET/SKIP pagination degrades linearly with depth, how cursor-based pagination keeps latency flat, and when to switch before production bites back.</description><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The RUM Conjecture: You Cannot Optimize Reads, Updates, and Memory at Once</title><link>https://ankit-rana.com/logs/13-rum-conjecture-database-tradeoffs/</link><guid isPermaLink="true">https://ankit-rana.com/logs/13-rum-conjecture-database-tradeoffs/</guid><description>How the RUM Conjecture explains real-world database trade-offs between read latency, write throughput, and memory overhead across B-Trees, LSM-Trees, and hash indexes.</description><pubDate>Sat, 21 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Why UUID Primary Keys Quietly Destroy Database Performance</title><link>https://ankit-rana.com/logs/12-uuids-primary-keys-performance/</link><guid isPermaLink="true">https://ankit-rana.com/logs/12-uuids-primary-keys-performance/</guid><description>How random UUID primary keys break clustered indexes, cause page splits and buffer pool churn, and what to use instead for mechanically sympathetic database design.</description><pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Designing Resilient APIs: Failure-Handling Patterns for Distributed Systems</title><link>https://ankit-rana.com/logs/11-resilient-api-design-patterns/</link><guid isPermaLink="true">https://ankit-rana.com/logs/11-resilient-api-design-patterns/</guid><description>Practical resilience patterns for distributed APIs: fail-fast, retries with backoff, circuit breakers, bulkheads, fallbacks, rate limiting, failover, and observability.</description><pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Microservices Deep Dive: Architecting for Scalability and Resilience</title><link>https://ankit-rana.com/logs/10-microservices-architecture/</link><guid isPermaLink="true">https://ankit-rana.com/logs/10-microservices-architecture/</guid><description>How to design, operate, and scale microservices: core principles, when to use them, key patterns, and how to manage complexity in distributed systems.</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Consistency Models in Azure Cosmos DB: From Strong to Eventual</title><link>https://ankit-rana.com/logs/09-cosmosdb-consistency-models/</link><guid isPermaLink="true">https://ankit-rana.com/logs/09-cosmosdb-consistency-models/</guid><description>How Azure Cosmos DB&apos;s five consistency levels map onto PACELC tradeoffs, what each level guarantees, and how to choose the right consistency for your workload.</description><pubDate>Fri, 02 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Zero Trust Architecture: From Perimeter Walls to &quot;Never Trust, Always Verify&quot;</title><link>https://ankit-rana.com/logs/08-zero-trust-architecture/</link><guid isPermaLink="true">https://ankit-rana.com/logs/08-zero-trust-architecture/</guid><description>How Zero Trust Architecture replaces perimeter-based security: core principles, differences from traditional models and ZTNA, enabling technologies, and real-world implementations.</description><pubDate>Mon, 03 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Transitioning from REST to gRPC: System Design and Tradeoffs</title><link>https://ankit-rana.com/logs/06-grpc-vs-rest/</link><guid isPermaLink="true">https://ankit-rana.com/logs/06-grpc-vs-rest/</guid><description>How gRPC changes API design versus REST: protocol model, protobuf schemas, service interfaces, streaming patterns, and when gRPC or REST is the right architectural choice.</description><pubDate>Thu, 25 Sep 2025 00:00:00 GMT</pubDate></item><item><title>HTTP/2 System Design: How It Fixes HTTP/1.1</title><link>https://ankit-rana.com/logs/05-http2-system-design/</link><guid isPermaLink="true">https://ankit-rana.com/logs/05-http2-system-design/</guid><description>Deep dive into HTTP/2: why HTTP/1.1 hit scaling limits, how multiplexing, server push, binary framing, and prioritization work, and why it matters for web performance.</description><pubDate>Sun, 17 Aug 2025 00:00:00 GMT</pubDate></item><item><title>How Shazam&apos;s Music Recognition System Design Actually Works</title><link>https://ankit-rana.com/logs/04-shazam-music-recognition/</link><guid isPermaLink="true">https://ankit-rana.com/logs/04-shazam-music-recognition/</guid><description>Inside Shazam&apos;s music recognition system design: audio fingerprinting, spectrogram peaks, NoSQL and SQL databases, and scaling search across millions of tracks.</description><pubDate>Wed, 16 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Mastering Event-Driven Architecture with Apache Kafka</title><link>https://ankit-rana.com/logs/07-kafka-event-driven-architecture/</link><guid isPermaLink="true">https://ankit-rana.com/logs/07-kafka-event-driven-architecture/</guid><description>How to design scalable, resilient systems using event-driven architecture and Apache Kafka for high-throughput, real-time data processing.</description><pubDate>Tue, 10 Jun 2025 00:00:00 GMT</pubDate></item><item><title>System Migration: Minimize Downtime, Maximize Efficiency</title><link>https://ankit-rana.com/logs/03-system-migration/</link><guid isPermaLink="true">https://ankit-rana.com/logs/03-system-migration/</guid><description>A practical blueprint for system migration: isolated env, sync/async flows, bridge layer, traffic leakage, backup sync, and monitoring.</description><pubDate>Mon, 05 May 2025 00:00:00 GMT</pubDate></item><item><title>System Design: Principles for Maintainability, Scalability, and Reliability</title><link>https://ankit-rana.com/logs/02-system-design-principles/</link><guid isPermaLink="true">https://ankit-rana.com/logs/02-system-design-principles/</guid><description>Data building blocks, fault tolerance, latency vs response time, scaling strategies, and the operability-simplicity-evolvability triad for durable systems.</description><pubDate>Wed, 16 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Time Management for Software Engineers: A Toolkit That Scales</title><link>https://ankit-rana.com/logs/01-time-management-software-engineering/</link><guid isPermaLink="true">https://ankit-rana.com/logs/01-time-management-software-engineering/</guid><description>How to get better at delivery and focus: planning, prioritization, delegation, and guarding deep work.</description><pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate></item></channel></rss>