High-Level Design (HLD)

Fundamental concepts for designing scalable systems.

0 / 119 concepts read

1238 min left

Start here

How to approach a system design

Fundamentals · Designing a System · 11 min

Start reading

Read these first

Fundamentals

0 of 18 read · 163 min left

Designing a System

0 of 3 read · 27 min left

  1. How to approach a system design11 min
  2. What happens to one request9 min
  3. Estimation, capacity & cost7 min

Networking

0 of 3 read · 22 min left

  1. How data moves across a network8 min
  2. HTTP7 min
  3. APIs: REST, gRPC & GraphQL7 min

Performance

0 of 4 read · 39 min left

  1. Latency12 min
  2. Throughput, utilization & queueing11 min
  3. Scalability8 min
  4. Concurrency8 min

Dependability

0 of 2 read · 19 min left

  1. Availability & reliability8 min
  2. Redundancy & failure domains11 min

Distributed Systems

0 of 6 read · 56 min left

  1. Why distributed systems are hard8 min
  2. Failure detection & split brain8 min
  3. Time, clocks & ordering12 min
  4. Consistency models9 min
  5. CAP & PACELC10 min
  6. Consensus & leader election9 min

Best after the fundamentals

Building blocks

0 of 101 read · 1075 min left

Networking & Communication

0 of 7 read · 68 min left

  1. DNS resolution12 min
  2. WebSockets & long polling10 min
  3. Webhooks9 min
  4. WebRTC & peer-to-peerDeep dive9 min
  5. Private networks: NAT, VPCs & firewalls9 min
  6. Anycast & global traffic routingDeep dive10 min
  7. Long-running & bulk APIs9 min

Scaling Services

0 of 5 read · 50 min left

  1. Stateless services & sessions10 min
  2. Load balancing9 min
  3. Reverse proxies & API gateways9 min
  4. Autoscaling11 min
  5. Consistent hashing11 min

Caching

0 of 5 read · 54 min left

  1. Caching strategies10 min
  2. Cache invalidation & eviction14 min
  3. Cache failure modes10 min
  4. Content delivery networks (CDNs)9 min
  5. Bloom filtersDeep dive11 min

Storing Data

0 of 12 read · 116 min left

  1. Relational vs NoSQL10 min
  2. Database indexing10 min
  3. Data modeling & denormalization10 min
  4. Object & blob storage10 min
  5. Storage engines: B-trees, LSM trees & WALDeep dive9 min
  6. Search & inverted indexesDeep dive12 min
  7. Time-series databasesDeep dive8 min
  8. Vector search & ANN indexesDeep dive9 min
  9. Distributed SQLDeep dive9 min
  10. In-memory data-structure stores9 min
  11. Distributed file systems & erasure codingDeep dive10 min
  12. Data lifecycle: tiering, TTL & compression10 min

Scaling Data

0 of 6 read · 66 min left

  1. Database replication9 min
  2. Sharding & partitioning13 min
  3. Hot partitions & skew11 min
  4. Quorums11 min
  5. Multi-region replicationDeep dive12 min
  6. Secondary indexes on sharded dataDeep dive10 min

Correctness & Coordination

0 of 8 read · 89 min left

  1. Unique ID generation11 min
  2. Idempotency12 min
  3. Transactions & isolation levels15 min
  4. Distributed locks12 min
  5. Distributed transactions: 2PC & sagasDeep dive12 min
  6. Byzantine faultsDeep dive9 min
  7. Coordination servicesDeep dive9 min
  8. CRDTs: data types that always mergeDeep dive9 min

Data Processing & Analytics

0 of 7 read · 74 min left

  1. OLTP vs OLAP & columnar storage8 min
  2. Batch processing8 min
  3. Data warehouses, lakes & pipelines8 min
  4. Lambda vs Kappa architectureDeep dive14 min
  5. Change data captureDeep dive13 min
  6. Schema evolution & encoding12 min
  7. Zero-downtime migrationsDeep dive11 min

Probabilistic Data Structures

0 of 3 read · 29 min left

  1. HyperLogLog: counting distinct thingsDeep dive9 min
  2. Count-Min Sketch & top-KDeep dive10 min
  3. Percentile sketchesDeep dive10 min

Async & Messaging

0 of 8 read · 98 min left

  1. Message queues & pub/sub13 min
  2. Delivery semantics10 min
  3. Stream processing14 min
  4. Event-driven architecture13 min
  5. Event sourcing & CQRSDeep dive13 min
  6. Background jobs & scheduling12 min
  7. Dead-letter queues & poison messages11 min
  8. Workflow orchestration & durable executionDeep dive12 min

Resilience

0 of 7 read · 75 min left

  1. Timeouts, retries, backoff & jitter8 min
  2. Rate limiting algorithms12 min
  3. The circuit breaker pattern10 min
  4. Load shedding & backpressure14 min
  5. Health checks & failover10 min
  6. BulkheadsDeep dive10 min
  7. Disaster recovery & backupsDeep dive11 min

Architecture

0 of 3 read · 30 min left

  1. Monolithic vs microservices10 min
  2. Fan-out on write vs read11 min
  3. Service discovery & registrationDeep dive9 min

Deploying & Running

0 of 7 read · 71 min left

  1. Compute models: VMs, containers & serverless10 min
  2. Deployment strategies10 min
  3. Feature flags & configuration11 min
  4. Service mesh & sidecarsDeep dive10 min
  5. Edge computingDeep dive10 min
  6. Load testing & capacity planning10 min
  7. Error budgets & chaos experiments10 min

Operating & Securing

0 of 10 read · 114 min left

  1. Observability: metrics, logs & traces12 min
  2. Authentication & authorization11 min
  3. Encryption in transit & at restDeep dive11 min
  4. DDoS protection & WAFs11 min
  5. Network segmentation & zero trustDeep dive10 min
  6. Secrets management10 min
  7. Common attack classes10 min
  8. Audit logging14 min
  9. Multi-tenancyDeep dive13 min
  10. Privacy, residency & retentionDeep dive12 min

Clients & Sync

0 of 2 read · 22 min left

  1. Offline-first & optimistic UIDeep dive12 min
  2. Resumable & chunked uploads10 min

Domain Building Blocks

0 of 11 read · 119 min left

  1. Geospatial indexingDeep dive10 min
  2. Video streaming: transcoding & adaptive bitrateDeep dive9 min
  3. Presence & push notificationsDeep dive10 min
  4. Typeahead & autocomplete11 min
  5. Inventory & booking contentionDeep dive12 min
  6. Counters & leaderboards10 min
  7. Chat delivery & syncDeep dive11 min
  8. Collaborative editingDeep dive13 min
  9. File sync & deduplicationDeep dive11 min
  10. Web crawlingDeep dive11 min
  11. Recommendation & feed rankingDeep dive11 min