Learn
System Design Reading Material
Structured guides on HLD and LLD concepts. Read before you practice — each topic maps directly to interview question patterns.
HLD topics
13
LLD topics
13
Showing 26 of 26 topics
High-Level Design
HLDSystem architecture, scalability patterns, distributed systems concepts, and infrastructure trade-offs.
Load Balancing
Load balancing distributes incoming traffic across multiple healthy backend servers so that no single machine becomes a bottleneck. It improves availability, enables horizontal scaling, and is one of the first building blocks mentioned in real-world system design interviews.
10 min read
Read →Caching Strategies
Caching improves latency and reduces pressure on primary storage by keeping hot data closer to the application. Good interview answers cover where the cache sits, how invalidation works, and how stampedes are prevented.
11 min read
Read →CDN and Edge Caching
A CDN reduces latency and origin load by serving cacheable content from locations closer to users. It is one of the highest-leverage improvements for globally distributed products.
10 min read
Read →CAP Theorem
The CAP theorem is the single most important concept in distributed systems design. It states that no distributed system can simultaneously guarantee Consistency, Availability, and Partition Tolerance — and understanding exactly why forces you to make better architectural decisions in every system you design.
15 min read
Read →Consistent Hashing
Consistent hashing is the foundational algorithm behind how databases like Cassandra and DynamoDB distribute data across nodes without catastrophic reshuffling when the cluster size changes. Understanding it deeply — including virtual nodes, hotspot prevention, and replication — is essential for any senior system design interview.
18 min read
Read →API Gateway
An API gateway acts as the front door for clients in a service-oriented architecture. It centralizes authentication, routing, throttling, and logging so downstream services can stay focused on domain logic.
12 min read
Read →Rate Limiting
Rate limiting protects services from abuse, overload, and unfair usage by restricting how many requests a client can make over time. It is especially important for public APIs, login flows, and expensive endpoints.
9 min read
Read →Message Queues and Pub-Sub
Queues and pub-sub systems decouple producers from consumers, absorb traffic spikes, and enable asynchronous workflows. They are foundational in notifications, analytics, billing, and event-driven systems.
12 min read
Read →Event-Driven Architecture
Event-driven architecture lets services communicate asynchronously by publishing facts about state changes. It improves decoupling and fan-out, but introduces eventual consistency and debugging complexity.
11 min read
Read →Service Discovery
Service discovery helps dynamic services find each other without hardcoded addresses. It is essential in containerized and microservice environments where instances come and go frequently.
9 min read
Read →Circuit Breaker Pattern
Circuit breakers prevent cascading failures by failing fast when a dependency is unhealthy. They are a core resilience pattern in microservice communication.
8 min read
Read →Database Sharding
Database sharding is how the world's largest systems store and query petabytes of data across thousands of machines. This guide covers every major sharding strategy in depth — range, hash, directory, and geo-based — along with shard key selection, cross-shard queries, resharding without downtime, and the real trade-offs you must articulate in an interview.
20 min read
Read →Distributed Locking
Distributed locking is used when exactly one worker should own a critical section or leadership role across multiple nodes. Correct solutions require leases, failure handling, and protection against stale owners.
12 min read
Read →Low-Level Design
LLDObject-oriented design, design patterns, SOLID principles, concurrency, and class-level architecture.
SOLID Principles
SOLID is the foundation of every good object-oriented design. These five principles — Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion — are what separate a design that is easy to extend and test from one that collapses under the weight of its own complexity. Every LLD interview question implicitly tests your understanding of them.
18 min read
Read →Factory Pattern
The Factory Pattern centralizes object creation and helps calling code remain independent from concrete implementations. It is a common answer when runtime type selection is involved.
8 min read
Read →Builder Pattern
Builder is useful when objects have many optional parameters or require step-by-step construction. It improves readability and often pairs naturally with immutability.
8 min read
Read →Observer Pattern
Observer supports one-to-many notification when object state changes. It is common in UI systems, event notifications, and subscription-based designs.
8 min read
Read →Strategy Pattern
Strategy encapsulates interchangeable algorithms behind a common interface so behavior can change without rewriting calling code. It is one of the most practical behavioral patterns in interviews.
9 min read
Read →Repository Pattern
Repository abstracts persistence so domain code does not depend directly on SQL, ORM, or storage-specific details. It is common in clean architecture and domain-driven design.
8 min read
Read →Dependency Injection
Dependency Injection makes systems easier to test, configure, and extend by supplying dependencies from outside rather than hardcoding them inside classes.
8 min read
Read →Design Patterns — Creational
Creational patterns — Singleton, Factory Method, Abstract Factory, Builder, and Prototype — solve the fundamental problem of how to create objects flexibly without coupling your code to specific classes. Knowing when each pattern applies and what it costs is what makes the difference between a good LLD answer and a great one.
20 min read
Read →Decorator Pattern
Decorator adds behavior dynamically to objects without creating a large inheritance hierarchy. It is useful for concerns like logging, metrics, caching, or compression.
9 min read
Read →State Pattern
The State Pattern models behavior that changes based on an object's current state. It is especially effective for lifecycle-heavy systems such as orders, bookings, approvals, and workflows.
9 min read
Read →LRU Cache Design
LRU cache is a classic design problem that combines data structures with object-oriented thinking. A strong answer explains why hashmap plus doubly linked list gives O(1) lookups and updates.
10 min read
Read →Concurrency in LLD
Concurrency is the most commonly underestimated aspect of LLD interviews. Almost every real system — parking lots, booking platforms, rate limiters, inventory systems — has multiple users acting simultaneously. This guide covers race conditions, every major synchronization mechanism, deadlock prevention, and lock-free approaches with the depth needed to ace any LLD interview.
22 min read
Read →Thread Pool Design
Thread pools reduce thread creation overhead, bound concurrency, and improve resource management. They are common in job runners, servers, and asynchronous execution frameworks.
10 min read
Read →