<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Production Engineering on Noman Chowdhury Munna | Blog</title><link>http://hellonoman.dev/blog/categories/production-engineering/</link><description>Recent content in Production Engineering on Noman Chowdhury Munna | Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 24 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://hellonoman.dev/blog/categories/production-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>Production Web Systems Architecture &amp; Real-World System Design Interview Scenarios</title><link>http://hellonoman.dev/blog/p/production-web-systems-and-interview-scenarios/</link><pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate><guid>http://hellonoman.dev/blog/p/production-web-systems-and-interview-scenarios/</guid><description>&lt;img src="http://hellonoman.dev/blog/p/production-web-systems-and-interview-scenarios/cover.png" alt="Featured image of post Production Web Systems Architecture &amp; Real-World System Design Interview Scenarios" /&gt;&lt;p&gt;Welcome back, everyone. Today is our capstone lecture in Systems Architecture.&lt;/p&gt;&#10;&lt;p&gt;Over the past four lectures, we dissected individual components: sockets, web servers, reverse proxies, load balancers, and API gateways. Now comes the moment where true senior engineers stand out from juniors: &lt;strong&gt;Putting everything together into a unified, resilient, enterprise-grade production architecture.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Today, we will map out the complete modern web request pipeline from edge to database, trace how infrastructure evolves from a $5 VPS to a multi-region microservices cluster, and solve 35 tough real-world system design interview scenarios.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="1-the-unified-web-architecture-blueprint"&gt;1. The Unified Web Architecture Blueprint&#10;&lt;/h2&gt;&lt;p&gt;Where does every component actually sit in a production network? Here is the complete end-to-end blueprint:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;span class="lnt"&gt;25&#10;&lt;/span&gt;&lt;span class="lnt"&gt;26&#10;&lt;/span&gt;&lt;span class="lnt"&gt;27&#10;&lt;/span&gt;&lt;span class="lnt"&gt;28&#10;&lt;/span&gt;&lt;span class="lnt"&gt;29&#10;&lt;/span&gt;&lt;span class="lnt"&gt;30&#10;&lt;/span&gt;&lt;span class="lnt"&gt;31&#10;&lt;/span&gt;&lt;span class="lnt"&gt;32&#10;&lt;/span&gt;&lt;span class="lnt"&gt;33&#10;&lt;/span&gt;&lt;span class="lnt"&gt;34&#10;&lt;/span&gt;&lt;span class="lnt"&gt;35&#10;&lt;/span&gt;&lt;span class="lnt"&gt;36&#10;&lt;/span&gt;&lt;span class="lnt"&gt;37&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[ PUBLIC INTERNET ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| 1. CLOUD EDGE / WAF &amp;amp; CDN (Cloudflare / AWS CloudFront) |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| - DDoS Protection, Web Application Firewall (WAF) |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| - Global Edge Caching (Images, JS, CSS, Static HTML) |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v (Public Anycast IP)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| 2. GLOBAL LAYER 4 LOAD BALANCER (AWS NLB / Anycast BGP) |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| - High-throughput TCP/UDP packet routing to healthy datacenters |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v (Private Subnet VPC)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| 3. LAYER 7 LOAD BALANCER / KUBERNETES INGRESS (Nginx / Envoy / ALB) |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| - TLS Termination &amp;amp; Path Routing |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| 4. API GATEWAY (Kong / APISix) |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| - JWT Authentication, Rate Limiting, API Key Quotas |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| 5. SERVICE MESH (Istio / Linkerd) &amp;amp; MICROSERVICES |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| - Sidecar Proxy mTLS, Circuit Breakers, Tracing (`X-Request-ID`) |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| 6. DATA &amp;amp; STATE TIER (PostgreSQL Primary/Replica, Redis Cluster) |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-----------------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="the-component-distinction-matrix"&gt;The Component Distinction Matrix&#10;&lt;/h3&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Component&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Primary OSI Layer&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Main Purpose&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Can Nginx do this?&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Web Server&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Layer 7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Serves static assets off disk; handles raw HTTP protocols.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Yes&lt;/strong&gt; (Native core)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Reverse Proxy&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Layer 7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Hides backend IPs; handles TLS termination &amp;amp; header rewriting.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Yes&lt;/strong&gt; (Native &lt;code&gt;proxy_pass&lt;/code&gt;)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Load Balancer&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Layer 4 or 7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Distributes incoming traffic across a pool of backend servers.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Yes&lt;/strong&gt; (Native &lt;code&gt;upstream&lt;/code&gt; block)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;API Gateway&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Layer 7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Edge authentication, rate limiting, request transformation, BFF.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Yes&lt;/strong&gt; (With Lua/OpenResty/Modules)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Ingress Controller&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Layer 7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Entry point for Kubernetes clusters mapping HTTP routes to K8s Services.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Yes&lt;/strong&gt; (Nginx Ingress Controller)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Service Mesh&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Layer 4 &amp;amp; 7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;East-West (service-to-service) internal mTLS, telemetry &amp;amp; retries.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;No&lt;/strong&gt; (Handled by Envoy / Istio)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="2-evolutionary-architecture-monolith-to-microservices"&gt;2. Evolutionary Architecture: Monolith to Microservices&#10;&lt;/h2&gt;&lt;p&gt;You should &lt;strong&gt;never&lt;/strong&gt; start a project with microservices, Kubernetes, and an API gateway on Day 1. That is over-engineering. Architecture must evolve as your user base and engineering team grow:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;STAGE 1: Single VPS Monolith STAGE 2: Single VPS Docker Containers&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[ Internet ] -&amp;gt; [ Nginx ] -&amp;gt; [ FastAPI ] [ Internet ] -&amp;gt; [ Nginx ] -&amp;gt; [ Next.js Container ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; [ FastAPI Container ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---------------------------------------------------------------------------------------------------&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;STAGE 3: Multi-VPS Load Balanced STAGE 4: Production Microservices Cluster&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[ Internet ] [ Internet ] -&amp;gt; [ Cloudflare WAF/CDN ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[ AWS ALB Load Balancer ] [ AWS NLB (L4) ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; +--+--+ [ Nginx Ingress / Gateway ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; | | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[VPS 1] [VPS 2] (Stateless Monoliths) [ Istio Service Mesh ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; | | [ 20 Microservices ] -&amp;gt; [ Redis / Postgres ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; +--+--+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [ Central Redis &amp;amp; Postgres DB ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="when-to-introduce-each-component"&gt;When to introduce each component?&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Reverse Proxy (Nginx)&lt;/strong&gt;: Day 1. Always put Nginx in front of any backend app.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Load Balancer&lt;/strong&gt;: When a single VPS hits 70% CPU during peak hours or when you require 99.9% uptime (fault tolerance against server hardware failure).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;API Gateway&lt;/strong&gt;: When you split your monolith into 3+ independent microservices, or when mobile and web teams require separate client APIs (BFF pattern).&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="3-real-world-system-design--operational-scenarios"&gt;3. Real-World System Design &amp;amp; Operational Scenarios&#10;&lt;/h2&gt;&lt;p&gt;Let&amp;rsquo;s work through 10 high-frequency system design and troubleshooting scenarios that senior engineers encounter in technical interviews and production post-mortems.&lt;/p&gt;&#10;&lt;h3 id="scenario-a-zero-downtime-deployments-behind-a-load-balancer"&gt;Scenario A: Zero-Downtime Deployments behind a Load Balancer&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Question&lt;/strong&gt;: How do you deploy a new backend version without dropping active user requests?&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Answer&lt;/strong&gt;: Use &lt;strong&gt;Blue-Green Deployment&lt;/strong&gt; or &lt;strong&gt;Canary Release&lt;/strong&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;BLUE-GREEN DEPLOYMENT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[ Load Balancer ] ---&amp;gt; [ Blue Pool (v1.0 - Active 100%) ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [ Green Pool (v2.0 - Standby 0%) ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Step 1: Deploy v2.0 to Green Pool &amp;amp; run health checks.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Step 2: Switch LB target group from Blue to Green instantly.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Step 3: Allow connection draining on Blue, then decommission v1.0.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="scenario-b-diagnosing-502-bad-gateway-vs-504-gateway-timeout"&gt;Scenario B: Diagnosing 502 Bad Gateway vs. 504 Gateway Timeout&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Question&lt;/strong&gt;: Users report intermittent errors. How do you distinguish a 502 from a 504?&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;502 Bad Gateway&lt;/strong&gt;: Nginx could not reach the backend socket (backend process crashed, out of memory OOM, or bound to wrong port).&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;em&gt;Fix&lt;/em&gt;: Check backend service status (&lt;code&gt;systemctl status fastapi&lt;/code&gt;), verify socket permissions, inspect OS kernel OOM killer logs (&lt;code&gt;dmesg -T&lt;/code&gt;).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;504 Gateway Timeout&lt;/strong&gt;: Nginx reached the backend, but the backend didn&amp;rsquo;t answer before &lt;code&gt;proxy_read_timeout&lt;/code&gt; expired.&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;em&gt;Fix&lt;/em&gt;: Backend is suffering from slow DB queries, thread pool exhaustion, or external API blocking calls. Inspect database slow query logs and application trace spans.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="scenario-c-preventing-retry-storms--duplicate-payments"&gt;Scenario C: Preventing Retry Storms &amp;amp; Duplicate Payments&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Question&lt;/strong&gt;: A user clicks &amp;ldquo;Pay $100&amp;rdquo;. Network stutters, the gateway times out, and the mobile app automatically retries 3 times. How do you prevent charging the user $300?&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Answer&lt;/strong&gt;: Enforce &lt;strong&gt;Idempotency Keys&lt;/strong&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[ Client ] -&amp;gt; Header: X-Idempotency-Key: 9f8a-1234 -&amp;gt; [ API Gateway / Payment Service ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [ Check Redis for Key 9f8a-1234 ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; +----------------------+----------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [ Key Exists in Redis? ] [ New Key? ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Return Saved Payment Result Process Payment &amp;amp; Save&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; (No double charge!) Result to Redis (TTL 24h)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="scenario-d-protecting-login-from-brute-force-attacks"&gt;Scenario D: Protecting &lt;code&gt;/login&lt;/code&gt; from Brute-Force Attacks&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Question&lt;/strong&gt;: How do you protect authentication endpoints from automated password-guessing bots?&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Answer&lt;/strong&gt;: Implement &lt;strong&gt;Distributed Rate Limiting + Fail2ban&lt;/strong&gt; at the Gateway:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Nginx / Gateway Rate Limit&lt;/strong&gt;: Restrict &lt;code&gt;/login&lt;/code&gt; requests to &lt;code&gt;5 req/min&lt;/code&gt; per IP using a Leaky Bucket directive (&lt;code&gt;limit_req_zone&lt;/code&gt;).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Redis Distributed Counter&lt;/strong&gt;: Track failed login attempts per username across all gateway nodes. If &lt;code&gt;failed_attempts &amp;gt; 5&lt;/code&gt; in 15 minutes, lock the account temporarily and trigger CAPTCHA verification.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="scenario-e-what-happens-when-the-gateway-or-load-balancer-dies"&gt;Scenario E: What Happens When the Gateway or Load Balancer Dies?&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Question&lt;/strong&gt;: If the Load Balancer is the single entry point, how do you prevent it from being a Single Point of Failure (SPOF)?&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Answer&lt;/strong&gt;:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Cloud Environments&lt;/strong&gt;: Use managed load balancers (AWS ALB/NLB) which run across multiple Availability Zones (AZs) with auto-healing managed control planes.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Bare-Metal / VPS&lt;/strong&gt;: Run pairs of load balancers using &lt;strong&gt;VRRP / Keepalived&lt;/strong&gt; with a shared &lt;strong&gt;Virtual IP (VIP)&lt;/strong&gt;, or use &lt;strong&gt;BGP Anycast&lt;/strong&gt; routing across multiple datacenters.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="classroom-conclusion--final-remarks"&gt;Classroom Conclusion &amp;amp; Final Remarks&#10;&lt;/h2&gt;&lt;p&gt;Congratulations, everyone! You have completed the Systems Architecture series.&lt;/p&gt;&#10;&lt;p&gt;Let&amp;rsquo;s summarize the journey we took together:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Level 0&lt;/strong&gt;: Mastered Sockets, Ports, DNS, and Web vs Application Servers.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Level 1 &amp;amp; 2&lt;/strong&gt;: Configured Nginx Reverse Proxies, TLS Termination, Header Forwarding, and Debugged 502/504 errors.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Level 3 &amp;amp; 4&lt;/strong&gt;: Built Load Balancing strategies (L4 vs L7), Consistent Hashing, and Stateless Architectures with Redis.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Level 5 &amp;amp; 6&lt;/strong&gt;: Designed API Gateways with Edge Auth, Token Bucket Rate Limiting, Circuit Breakers, and Distributed Tracing.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Level 7 &amp;amp; 8&lt;/strong&gt;: Assembled End-to-End Enterprise Production Blueprints, Blue-Green deployments, and Idempotency patterns.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;You now possess the theoretical foundation and practical blueprint required to design, build, and debug high-performance production web systems.&lt;/p&gt;&#10;&lt;p&gt;Go build incredible, resilient systems. Class dismissed!&lt;/p&gt;&#10;</description></item></channel></rss>