Week 11 — HLD Foundations & Building Blocks

intermediate hld dsa

Goal: “System design is not about memorizing architectures — it’s about understanding trade-offs.” — Welcome to the big leagues. This week we learn how to think about systems at scale. Every building block we study here (load balancers, caches, queues) will show up in every system design interview we’ll ever do.

Topics

DayTrackFocusTopics
MonA — DSA PracticeGraph BFS/DFS ApplicationsSolve 2-3 problems. Focus on connected components, shortest path in unweighted graphs, and flood fill.
TueB — HLDFramework & EstimationWhat Is System Design? · How to Approach System Design · Requirements Gathering · Back-of-the-Envelope Estimation · Design Principles and Trade-offs
WedA — DSA PracticeShortest Paths & Union-FindSolve 2-3 problems. Try Dijkstra applications, union-find for connected components, and cycle detection.
ThuB — HLDCore Building BlocksDNS and How Internet Works · Load Balancers · Caching · Content Delivery Networks · Message Queues
FriB — HLDData Layer at ScaleProxies and Reverse Proxies · SQL vs NoSQL · Database Indexing · Database Replication · Database Sharding

Note: The database topics on Friday (SQL vs NoSQL, indexing, replication, sharding) build directly on what we studied in Weeks 8-10. We already know this stuff from the DBMS track — now we’re thinking about it at system scale, in the context of designing distributed systems.

Key Concepts

  • The system design interview framework: requirements (functional + non-functional) → estimation (QPS, storage, bandwidth) → high-level design → deep dive into components → identify bottlenecks and trade-offs. This structure keeps us organized under pressure.
  • Load balancers distribute traffic across servers. Know the algorithms: round-robin (simplest), least connections (smartest for varying request times), IP hash (sticky sessions). L4 vs L7 load balancing is a common follow-up question.
  • CDNs serve static content from edge locations close to users. Think of them as geographically distributed caches. CloudFront, Cloudflare, Akamai — they all do the same fundamental thing.
  • Message queues (RabbitMQ, Kafka, SQS) decouple producers from consumers. This is how we handle bursty traffic, async processing, and service-to-service communication without tight coupling.
  • Proxies sit between clients and servers. Forward proxy = on the client side (VPN, corporate firewall). Reverse proxy = on the server side (Nginx, Caddy). Most “load balancers” in practice are reverse proxies with load balancing capabilities.

Practice

  • DSA: Solve 5-6 graph problems this week — BFS, DFS, shortest path, and union-find
  • HLD: Estimate the QPS, storage, and bandwidth requirements for a URL shortener that handles 100M URLs per month
  • HLD: Draw a high-level architecture diagram for a blog platform — include load balancer, app servers, database, cache, and CDN
  • HLD: For the blog platform, explain which components would need to scale first as traffic grows from 100 to 10M daily users

~15 topics + DSA practice · ~2 hrs/day · Welcome to system design!