System Design โ Fundamentals & Case Studies
Last reviewed: 2026-05-29
System design is the process of defining the architecture, components, modules, interfaces, and data flow of a system to satisfy specified requirements. It's a critical skill for senior and staff engineering roles, and a major component of technical interviews at top tech companies.
Overview
System design bridges the gap between requirements and implementation. It covers everything from high-level architecture decisions to detailed component design.
Training Content
This folder contains comprehensive training materials organized by topic sections:
| File | Topic | Type |
|---|---|---|
| Section 1_ Computer Architecture.pdf (3.8 MB) | CPU, memory hierarchy, caches, buses, I/O | PDF slides |
| Section 2_ Production App Architecture.pdf (918 KB) | Monoliths, microservices, n-tier patterns | PDF slides |
| Section 3_ Design Requirements.pdf (1.7 MB) | Functional/non-functional requirements, trade-offs | PDF slides |
| Section 4_ Networking Essentials.pdf (1.7 MB) | TCP/IP, DNS, HTTP/2, load balancing | PDF slides |
| Section 5_ Application Protocols.pdf (915 KB) | HTTP, WebSocket, gRPC, GraphQL | PDF slides |
| Section 6_ API Design.pdf (4.4 MB) | RESTful APIs, versioning, pagination, rate limiting | PDF slides |
| Section 7_ CDNs & Caching.pptx (2.1 MB) | Caching strategies, CDN architecture, TTL, invalidation | PPTX presentation |
| Section 8_ Proxy Servers.pptx (4.7 MB) | Forward/reverse proxies, API gateway, sidecar pattern | PPTX presentation |
| Section 9_ Load Balancers.pptx (1.4 MB) | L4/L7 load balancing, algorithms, DNS-based LB | PPTX presentation |
| Section 10_ Databases.pdf (1.8 MB) | SQL vs NoSQL, replication, sharding, ACID/BASE | PDF slides |
| BytesBytesGo.pdf (37.8 MB) | Comprehensive system design interview prep | PDF reference |
Core System Design Concepts
1. Computer Architecture
- CPU architecture โ Cores, threads, instruction pipelining, clock speed
- Memory hierarchy โ L1/L2/L3 cache โ RAM โ SSD โ HDD (increasing latency)
- Moore's Law / Dennard scaling โ Historical performance trends
- Amdahl's Law โ Parallelism limits based on sequential portions
2. Production Application Architecture
- Monolithic โ Single deployable unit (simple, but hard to scale)
- Microservices โ Loosely coupled, independently deployable services
- Event-driven โ Components communicate through events (Kafka, SQS)
- Serverless โ Functions as a service (AWS Lambda, Cloudflare Workers)
3. Design Requirements
- Functional requirements โ What the system must do
- Non-functional requirements (NFRs) โ Performance, scalability, availability, consistency, durability, security
- Trade-offs โ CAP theorem, latency vs throughput, consistency vs availability
4. Networking Essentials
- TCP/IP stack โ Application โ Transport โ Network โ Link
- DNS โ Domain resolution (A, CNAME, NS records)
- Load balancing โ Round robin, least connections, consistent hashing
- HTTP/1.1 vs HTTP/2 vs HTTP/3 โ Multiplexing, server push, QUIC
5. Databases
- SQL (relational) โ ACID, joins, indices, transactions
- NoSQL โ Document (MongoDB), key-value (Redis), columnar (Cassandra), graph (Neo4j)
- Replication โ Leader-follower, multi-leader, quorum
- Sharding โ Horizontal partitioning (hash-based, range-based)
- CAP Theorem โ Pick two: Consistency, Availability, Partition tolerance
6. Caching & CDNs
- Cache types: Client, CDN, in-memory (Redis/Memcached), application, database query
- Strategies: Cache-aside, write-through, write-behind, refresh-ahead
- Invalidation: TTL, event-driven, manual
- CDN: Edge caching, origin pull vs push, POP locations
7. API Design
- REST โ Resources, HTTP verbs, statelessness, HATEOAS
- Pagination โ Cursor-based vs offset-based
- Rate limiting โ Token bucket, leaky bucket, sliding window
- Versioning โ URL path, header, query parameter
System Design Interview Prep
Common design questions and the concepts they test:
| Problem | Key Concepts |
|---|---|
| Design URL Shortener | Hashing, distributed ID generation, caching |
| Design Chat System | WebSockets, pub/sub, presence, message ordering |
| Design News Feed | Fan-out on write vs read, ranking, push/poll |
| Design Distributed DB | Consistent hashing, replication, consensus (Raft/Paxos) |
| Design Rate Limiter | Token bucket, distributed counters, Redis |
| Design YouTube/Netflix | CDN, video transcoding, chunked upload, DASH/HLS |
Resources
- System Design Interview โ Donne Martin's primer (GitHub ~300K stars)
- ByteByteGo โ System design videos
- High Scalability โ Real-world architecture write-ups
- Designing Data-Intensive Applications by Martin Kleppmann โ The definitive book
- Grokking the System Design Interview