A comprehensive learning roadmap covering system design principles, from networking fundamentals and basic architecture to distributed systems, scalability patterns, and real-world case studies.
§ SYLLABUS
- 01Client-Server Model
Understand the fundamental request-response architecture where clients make requests and servers provide resources or services.
- 02Latency, Throughput & Availability
Learn the key performance metrics used to evaluate systems — how fast, how much, and how reliably a system responds.
- 03CAP Theorem & Trade-offs
Understand the fundamental impossibility result that forces distributed systems to choose between consistency, availability, and partition tolerance.
- 04Back-of-the-Envelope Estimation
Practice quick math to estimate system requirements like storage, bandwidth, and QPS before diving into design.
- 05Fundamentals Complete
You can reason about basic system properties, trade-offs, and capacity requirements.
- 01DNS & HTTP
Learn how domain names resolve to IP addresses and how the HTTP protocol structures web communication.
- 02REST, GraphQL & RPC
Compare the major API design paradigms — when to use resource-oriented REST, flexible GraphQL, or efficient RPC.
- 03WebSockets & Server-Sent Events
Understand persistent and push-based communication for real-time features like chat, notifications, and live feeds.
- 04Message Queues & Event Streaming
Learn asynchronous communication patterns using queues (RabbitMQ, SQS) and event logs (Kafka) to decouple producers and consumers.
- 05Networking Foundations Complete
You understand how services communicate synchronously and asynchronously.
- 01Relational Databases & SQL
Understand ACID transactions, schemas, normalization, indexing, and when relational databases are the right choice.
- 02NoSQL Databases
Explore key-value, document, column-family, and graph databases — their data models, strengths, and ideal use cases.
- 03Caching Strategies
Learn cache-aside, write-through, write-back, and eviction policies to reduce latency and database load.
- 04Data Partitioning & Sharding
Understand horizontal and vertical partitioning strategies, shard keys, and how to distribute data across multiple nodes.
- 05Database Replication
Learn leader-follower, multi-leader, and leaderless replication — how data is copied across nodes for durability and read scaling.
- 06Blob & Object Storage
Understand how unstructured data like images, videos, and files are stored and served using systems like S3 or GCS.
- 07Data Layer Complete
You can choose, configure, and scale appropriate storage solutions.
- 01Load Balancing
Learn how traffic is distributed across servers using round-robin, least connections, consistent hashing, and L4/L7 balancers.
- 02Horizontal vs Vertical Scaling
Compare scaling up a single machine versus scaling out with many machines, and understand when each is appropriate.
- 03Content Delivery Networks
Understand how CDNs cache and serve static content from edge locations close to users to reduce latency.
- 04Rate Limiting & Throttling
Learn algorithms (token bucket, sliding window) and strategies to protect services from being overwhelmed by excessive requests.
- 05Auto-Scaling
Understand how systems dynamically add or remove compute resources based on demand using metrics and policies.
- 06Scalability Patterns Complete
You can design systems that handle growth in traffic and data gracefully.
- 01Consistency Models
Understand strong, eventual, causal, and read-your-writes consistency — what guarantees each provides and their costs.
- 02Consensus Algorithms
Learn how distributed nodes agree on values using protocols like Raft and Paxos, and why this is fundamentally hard.
- 03Distributed Transactions
Understand two-phase commit, sagas, and compensating transactions for maintaining data integrity across services.
- 04Microservices Architecture
Learn how to decompose a monolith into independently deployable services, including service boundaries, communication, and data ownership.
- 05Service Discovery & Coordination
Understand how services find each other dynamically using registries (Consul, etcd, ZooKeeper) and DNS-based discovery.
- 06Distributed Systems Complete
You can reason about consistency, coordination, and failure in multi-node architectures.
- 01CI/CD & Deployment Strategies
Learn continuous integration, delivery pipelines, and deployment patterns like blue-green, canary, and rolling updates.
- 02Containers & Orchestration
Understand Docker containers and Kubernetes orchestration for packaging, deploying, and managing services at scale.
- 03Monitoring, Logging & Observability
Learn how to instrument systems with metrics, structured logs, and distributed tracing to detect and diagnose issues.
- 04Infrastructure Complete
You can deploy, operate, and observe production systems.
- 01Authentication & Authorization
Understand identity verification (OAuth, JWT, SSO) and access control models (RBAC, ABAC) for securing systems.
- 02Encryption & Data Protection
Learn TLS for data in transit, encryption at rest, key management, and how to protect sensitive user data.
- 03Fault Tolerance & Resilience Patterns
Master circuit breakers, retries with backoff, bulkheads, and graceful degradation to keep systems running when things fail.
- 04Disaster Recovery & Backup
Understand RPO, RTO, backup strategies, and multi-region failover planning for business continuity.
- 05Security & Reliability Complete
You can design systems that are secure and resilient to failures.
- 01Design: URL Shortener
Apply fundamentals to design a simple but scalable system — hashing, storage, redirection, and analytics.
- 02Design: Real-Time Chat System
Design a messaging system handling presence, delivery guarantees, group chats, and message storage at scale.
- 03Design: Social Media News Feed
Design a feed system dealing with fan-out, ranking, caching, and handling millions of users and posts.
- 04Design: Notification System
Design a multi-channel notification platform handling prioritization, deduplication, rate limiting, and user preferences.
- 05Design: Distributed Cache
Design a cache system like Memcached or Redis — consistent hashing, replication, eviction, and cluster management.
- 06System Design Mastery
You can apply system design principles end-to-end to solve real-world problems confidently.