Background
Sections
IntroductionRequirements & Problem AnalysisConstraints & AssumptionsEstimation TechniquesFunctional vs Non-Functional RequirementsMoSCoW PrioritizationSystem Design FundamentalsArchitecture DiagramClass DiagramComponent DiagramData Flow Diagram (DFD)ER Diagram (Entity-Relationship Diagram)High Level Design (HLD)Low Level Design (LLD)Sequence DiagramState DiagramUse Case DiagramData StorageDocument StoresFile StorageGraph DatabasesIn-Memory DatabasesKey-Value StoresNewSQLNoSQL DatabasesObject StorageSQL Databases (RDBMS)Time-Series DatabasesWide-Column StoresDatabase ConceptsACID PropertiesCAP TheoremConsistency ModelsIndexingNormalization & DenormalizationReplicationSharding & PartitioningTransactions & Isolation LevelsScalabilityAuto-Scaling & ElasticityConsensus & Leader ElectionLoad BalancingReplication & Read ReplicasSharding & PartitioningVertical vs Horizontal ScalingAvailability & ReliabilityBackup & Data DurabilityCircuit BreakerData ConsistencyDisaster RecoveryFault Tolerance & FailoverGraceful DegradationHigh AvailabilityNetworkingCDNDNSFirewalls & VPNHTTP & HTTPSLoad Balancer & Reverse ProxyTCP/IP & UDPWebSocketsCachingCache InvalidationCache Read/Write PatternsCaching LayersEviction PoliciesRedis vs MemcachedMessaging & CommunicationDead-Letter QueueIdempotencyKafka vs RabbitMQ vs SQSMessage QueuesPub/SubCompute & ServicesAPI GatewayContainers & OrchestrationMonolith vs MicroservicesServerlessService DiscoveryService MeshWeb Server & App ServerAPI DesignAPI Versioning & IdempotencyAuthentication & AuthorizationGraphQLgRPCPaginationRate Limiting & ThrottlingRESTSecurityAuthentication & AuthorizationData PrivacyEncryptionInput Validation & InjectionOAuth2 & JWTSecrets ManagementXSS & CSRFStorage & File SystemsBackup & RetentionBlock vs File vs Object StorageData Lakes & WarehousesDistributed File SystemsEphemeral StorageObservability & MonitoringDistributed TracingHealth ChecksLoggingMetricsSLI, SLO, SLADesign PatternsBulkhead PatternCircuit Breaker PatternCreational PatternsRate Limiter PatternRetry PatternStructural & Behavioral Patterns

System Design Concepts

May 15, 20266 min read
System DesignArchitectureScalability

A comprehensive, interview-focused study guide covering the concepts, trade-offs, and real-world patterns behind designing scalable, reliable, and secure systems. Each topic is broken into focused sub-topics, and every sub-topic follows the same structure — a friendly summary, a deep technical walkthrough, a worked example, five interview questions with hints, and curated references for going further.

How to Use This Guide

Work through the topics in order for a structured path from fundamentals to real-world system design, or jump directly to a topic you want to sharpen. Each topic has its own README with a detailed overview and a summary of every sub-topic, so start there to get oriented before diving into individual pages.

  • Preparing for interviews? Focus on the interview questions at the end of each sub-topic and the trade-off discussions throughout.
  • Building real systems? The "Seeing It in Action" sections and worked examples map concepts to practical decisions.
  • Brushing up a specific area? Use the topic index below to jump straight in.

Illustrations for each page are catalogued in image-prompts.


Foundations

The groundwork: how to analyze a problem, communicate a design, choose where data lives, and reason about database internals.

01 — Requirements & Problem Analysis

Turning a vague prompt into a bounded, well-scoped problem — functional vs non-functional requirements, constraints and assumptions, back-of-the-envelope estimation, and prioritization. (4 sub-topics)

02 — System Design Fundamentals

The diagrams and design artifacts that communicate architecture — high-level and low-level design, and the full family of UML and modeling diagrams from use-case to sequence to ER. (10 sub-topics)

03 — Data Storage

Choosing the right store for the job — SQL, NoSQL, and NewSQL, plus the full spectrum of key-value, document, wide-column, graph, time-series, in-memory, object, and file storage. (11 sub-topics)

04 — Database Concepts

The theory behind every storage decision — ACID, transactions and isolation levels, the CAP theorem, consistency models, indexing, normalization, sharding, and replication. (8 sub-topics)


Building Blocks

The core mechanisms that make systems scale, stay up, communicate, and run fast.

05 — Scalability

Handling growth — vertical vs horizontal scaling, auto-scaling and elasticity, load balancing, sharding, replication and read replicas, and consensus and leader election. (6 sub-topics)

06 — Availability & Reliability

Staying up when things fail — high availability, fault tolerance and failover, disaster recovery, backups and durability, data consistency, circuit breakers, and graceful degradation. (7 sub-topics)

07 — Networking

The wires everything runs on — TCP/IP and UDP, HTTP and HTTPS, DNS, CDNs, load balancers and reverse proxies, firewalls and VPNs, and WebSockets. (7 sub-topics)

08 — Caching

Doing less work by remembering answers — caching layers, read/write patterns, cache invalidation, eviction policies, and Redis vs Memcached. (5 sub-topics)

09 — Messaging & Communication

Decoupling services in time and load — message queues, pub/sub, Kafka vs RabbitMQ vs SQS, idempotency, and dead-letter queues. (5 sub-topics)

10 — Compute & Services

Where code runs and how services connect — web vs app servers, API gateways, monolith vs microservices, serverless, containers and orchestration, service discovery, and service mesh. (7 sub-topics)


Interfaces, Security & Data at Scale

Designing the contracts between systems, securing them, and storing large-scale data.

11 — API Design

The contracts between systems — REST, GraphQL, gRPC, API versioning and idempotency, authentication and authorization, rate limiting, and pagination. (7 sub-topics)

12 — Security

Designing systems that resist attack — authentication and authorization, OAuth2 and JWT, encryption, data privacy, input validation and injection, XSS and CSRF, and secrets management. (7 sub-topics)

13 — Storage & File Systems

Where and how data physically lives — block vs file vs object storage, distributed file systems, data lakes and warehouses, ephemeral storage, and backup and retention. (5 sub-topics)


Operations & Patterns

Knowing what your system is doing, and the reusable patterns that keep it healthy.

14 — Observability & Monitoring

Knowing what your system is actually doing — logging, metrics, distributed tracing, health checks, and SLI/SLO/SLA with error budgets. (5 sub-topics)

15 — Design Patterns

Reusable solutions to recurring problems — creational, structural, and behavioral patterns, plus the resilience patterns: circuit breaker, retry, bulkhead, and rate limiter. (6 sub-topics)


Coming Soon

The following topics are in progress and will be added soon.

  • 16 — Performance Optimization (coming soon)
  • 17 — Distributed Systems Concepts (coming soon)
  • 18 — Cloud & Infrastructure (coming soon)
  • 19 — Advanced Topics (coming soon)
  • 20 — Real-World System Design (coming soon)
  • 21 — Interview Process (coming soon)
  • 22 — Non-Functional Requirements (coming soon)
  • 23 — Trade-Offs to Know (coming soon)
  • 24 — Other Important Topics (coming soon)

Topic Index

# Topic Sub-Topics Status
01 Requirements & Problem Analysis 4 ✅ Available
02 System Design Fundamentals 10 ✅ Available
03 Data Storage 11 ✅ Available
04 Database Concepts 8 ✅ Available
05 Scalability 6 ✅ Available
06 Availability & Reliability 7 ✅ Available
07 Networking 7 ✅ Available
08 Caching 5 ✅ Available
09 Messaging & Communication 5 ✅ Available
10 Compute & Services 7 ✅ Available
11 API Design 7 ✅ Available
12 Security 7 ✅ Available
13 Storage & File Systems 5 ✅ Available
14 Observability & Monitoring 5 ✅ Available
15 Design Patterns 6 ✅ Available
16 Performance Optimization 🔜 Coming soon
17 Distributed Systems Concepts 🔜 Coming soon
18 Cloud & Infrastructure 🔜 Coming soon
19 Advanced Topics 🔜 Coming soon
20 Real-World System Design 🔜 Coming soon
21 Interview Process 🔜 Coming soon
22 Non-Functional Requirements 🔜 Coming soon
23 Trade-Offs to Know 🔜 Coming soon
24 Other Important Topics 🔜 Coming soon

15 of 24 topics complete — 100 sub-topics available.