Back to Study Resources
System Design
System Design Roadmap
A comprehensive 13-week learning path to master system design concepts, from fundamentals to advanced distributed systems.
Why Learn System Design?
System Design is a critical skill for building large-scale applications and services. Here's why you should follow this roadmap:
- Essential for designing scalable and reliable applications
- Critical for senior and architect-level engineering roles
- Key component of technical interviews at top tech companies
- Helps understand trade-offs in complex distributed systems
- Enables you to make informed architectural decisions
Learning Roadmap
Follow this structured 13-week roadmap to master system design concepts from fundamentals to advanced topics.
Phase 1: Foundations
Week 1-2
Basics of scalability, availability, and reliability
Basic Concepts
- What is System Design?
- Vertical vs. Horizontal Scaling
- Load Balancer
- Caching
- CDN
- Proxy vs Reverse Proxy
Study Resources
- Grokking the System Design Interview (educative.io)
- YouTube: Tech Dummies Narayan or Gaurav Sen
Phase 2: Core Components
Week 3-5
Learn how real systems work
Database Design
- SQL vs NoSQL
- Indexing
- Partitioning & Sharding
- CAP Theorem
Caching
- Redis, Memcached
- Cache Eviction Policies (LRU, LFU)
- Cache Invalidation
Load Balancing
- Round Robin, Least Connections
- Health Checks
Messaging Systems
- Kafka, RabbitMQ
- Message Queues vs Pub/Sub
Data Storage & File Systems
- Blob Storage (S3, GCS)
- Block vs Object Storage
Phase 3: Design Patterns & Principles
Week 6-7
Learn architectural patterns for scalable systems
Architecture Patterns
- Microservices vs Monolith
- API Gateway
- Circuit Breaker, Rate Limiter, Retry Logic
- Service Discovery (Eureka, Consul)
- Event-driven architecture
- CQRS & Event Sourcing
Phase 4: Design Real-world Systems
Week 8-10
Apply knowledge to practical system designs
Pick and design
- URL Shortener (e.g., TinyURL)
- Rate Limiter (Token Bucket, Leaky Bucket)
- Chat App (e.g., WhatsApp)
- YouTube/Netflix
- Instagram/Twitter feed
- Uber/Google Maps (GPS + real-time systems)
- Notification System
Use these while designing
- High-level architecture diagram
- APIs
- DB Schema
- Scaling strategy
- Caching strategy
- Failure handling
Phase 5: Advanced Topics
Week 11-13
Master complex distributed systems concepts
Advanced Concepts
- Distributed Systems (Zookeeper, Raft, Paxos)
- Consistency Models (Strong vs Eventual)
- Leader Election
- CRDTs, Bloom Filters
- Websockets vs Long Polling vs SSE
- GraphQL vs REST
- Security: OAuth2, JWT, TLS, API Keys
Learning Resources
Grokking the System Design Interview
Designing Data-Intensive Applications – Martin Kleppmann (book)
Bonus Tips
Consistency is key: Spend 1–1.5 hours a day.
Mock interviews: Practice with peers or online platforms.
Draw architecture diagrams in every problem.
Keep a Notion doc or Google Doc for your designs and notes.