System Design Roadmap
⏱ 8 weeks · 👤 Beginner (Zero to Hero) · 📋 SYSTEM_DESIGN
Comprehensive, production-grade learning path for System Design, architected with foundational-to-advanced pedagogical progression.
Phase 1 Phase 0: Orientation & Mental Models
Establishes the foundational vocabulary and strategic mindset required for system design. Introduces the core trade-offs that govern distributed systems, specifically focusing on the CAP theorem and consistency models. This phase sets the stage by defining what 'good' looks like in terms of availability and reliability.
Milestone Introduction to System Design & The CAP Theorem: CAP Theorem
Master the CAP theorem (Consistency, Availability, Partition tolerance) and its trade-offs in distributed systems.
cap theoremdistributed systemsnetwork partitionconsistencyavailability
ULO-CAP_THEOREM · UNIVERSAL · Bloom: Understand
Master the CAP theorem (Consistency, Availability, Partition tolerance) and its trade-offs in distributed systems.
Milestone Introduction to System Design & The CAP Theorem: System Design Approach and Abstraction
how to approach system designdesign implementationmicroservicesclient-serverscalability
ULO-SYSTEM_DESIGN_FUNDAMENTALS · UNIVERSAL · Bloom: Understand
Milestone Availability Patterns: Active-Active vs Master-Slave: High Availability Architectures and Failover Strategies
active-activemaster-slavefail-overactive-passiveavailability patterns
ULO-AVAILABILITY_PATTERNS · UNIVERSAL · Bloom: Understand
Milestone Availability Patterns: Active-Active vs Master-Slave: Traffic Distribution and Request Routing
lb vs reverse proxypull cdnspush cdns
ULO-LOAD_BALANCING_AND_PROXY · UNIVERSAL · Bloom: Apply
Phase 2 Phase 1: Scaling Foundations & Network Layer
Focuses on the entry point of traffic and horizontal scaling mechanisms. Learners start with concrete tools like Load Balancers and CDNs before understanding the abstract concepts of latency and throughput. This phase covers how to distribute load and serve content efficiently at the edge.
Milestone Load Balancing Algorithms & LB vs Reverse Proxy: Traffic Distribution Strategies
📚 Prerequisites: LOAD_BALANCING_AND_PROXY, AVAILABILITY_PATTERNS
round-robinleast-connectionshash-based routingnginxhaproxy
ULO-LOAD_BALANCING_STRATEGIES · UNIVERSAL · Bloom: Understand
Milestone Content Delivery Networks (CDN): Push vs Pull: Cache Invalidation and Fetch Strategies
📚 Prerequisites: LOAD_BALANCING_AND_PROXY, AVAILABILITY_PATTERNS
pull cdnspush cdnscache invalidationorigin shieldedge caching
ULO-CDN_CACHE_STRATEGIES · UNIVERSAL · Bloom: Analyze
Milestone Domain Name System (DNS) & Service Discovery: Dynamic Service Registration and Lookup
📚 Prerequisites: SYSTEM_DESIGN_FUNDAMENTALS
service discoveryconsuletcdkubernetes dnsmicroservices
ULO-SERVICE_DISCOVERY_MECHANISM · UNIVERSAL · Bloom: Apply
Phase 3 Phase 2: Data Persistence & Caching Strategies
Moves from network layer to data storage. Covers the spectrum from SQL to NoSQL, introducing sharding and replication for scalability. Crucially, it integrates caching patterns (Cache Aside, Refresh Ahead) to reduce database load, bridging the gap between performance and data integrity.
Milestone Database Scalability: Sharding, Federation, and Replication: Database Consistency and Scalability
The learner will be able to compare consistency and scalability trade-offs between relational and non-relational databases.
cap theoremeventual consistencystrong consistencydistributed transactions
ULO-DB_CONSISTENCY_AND_SCALABILITY · UNIVERSAL · Bloom: Analyze
The learner will be able to compare consistency and scalability trade-offs between relational and non-relational databases.
Milestone Caching Strategies: Cache Aside, Write-Through, and Refresh Ahead: Data Consistency Patterns in Caching Layers
Using Observable Object (@StateObject, @ObservedObject) to manage and share complex class-based state across views.
📚 Prerequisites: CDN_CACHE_STRATEGIES
cache aside patternwrite-through cacherefresh aheadstale data
ULO-SHARED_OBSERVABLE_STATE · UNIVERSAL · Bloom: Analyze
Using Observable Object (@StateObject, @ObservedObject) to manage and share complex class-based state across views.
Milestone SQL Tuning and Denormalization for Performance: Balancing Normalization with Query Performance
Understanding the process of organizing columns and tables in relational databases to minimize data redundancy and improve integrity.
denormalizationsql tuningquery optimizationread replicas
ULO-DATABASE_NORMALIZATION · UNIVERSAL · Bloom: Evaluate
Understanding the process of organizing columns and tables in relational databases to minimize data redundancy and improve integrity.
Phase 4 Phase 3: Asynchronism & Decoupling
Introduces decoupling components using message queues and background jobs. This phase shifts from synchronous request-response patterns to asynchronous event-driven architectures, improving resilience and allowing systems to handle bursts of traffic via back pressure.
Milestone Asynchronous Communication: Message Queues vs Task Queues: Asynchronous Programming
Introducing asynchronous programming techniques such as callbacks, promises, or async/await to handle time-consuming tasks without blocking the main thread.
celerysidekiqmessage queues
ULO-ASYNC_PATTERNS · UNIVERSAL · Bloom: Apply
Introducing asynchronous programming techniques such as callbacks, promises, or async/await to handle time-consuming tasks without blocking the main thread.
Milestone Idempotent Operations and Retry Logic: Logical Errors
Recognize errors in program logic that cause it to run incorrectly, despite not causing syntax or runtime errors.
deduplicationretry logic
ULO-LOGIC_ERRORS · UNIVERSAL · Bloom: Analyze
Recognize errors in program logic that cause it to run incorrectly, despite not causing syntax or runtime errors.
Milestone Idempotent Operations and Retry Logic: Event-Based Programming Model
Programming model where program flow is driven by events (e.g., user actions) instead of a sequential command sequence.
exponential backoffevent-driven
ULO-EVENT_BASED_PROGRAMMING · UNIVERSAL · Bloom: Apply
Programming model where program flow is driven by events (e.g., user actions) instead of a sequential command sequence.
Phase 5 Phase 4: Reliability, Observability & Production Patterns
Covers production-grade concerns including monitoring, alerting, and specific cloud design patterns (Circuit Breaker, Bulkhead, Strangler Fig). This phase ensures learners can maintain, observe, and evolve systems in complex, distributed environments.
Milestone Monitoring & Observability: Metrics, Logs, and Alerts: Alerting Strategies and Signal-to-Noise Ratio
grafanapagerdutyslack-webhooks
ULO-ALERTING_STRATEGIES · UNIVERSAL · Bloom: Apply
Milestone Reliability Patterns: Circuit Breaker, Bulkhead, and Throttling: Fault Tolerance Patterns (Circuit Breaker & Bulkhead)
resilience4jhystrixbulkhead-pattern
ULO-FAULT_TOLERANCE_PATTERNS · UNIVERSAL · Bloom: Apply
Milestone Reliability Patterns: Circuit Breaker, Bulkhead, and Throttling: Traffic Management and Rate Limiting
envoy-proxyhaproxyrate-limiter
ULO-TRAFFIC_MANAGEMENT · UNIVERSAL · Bloom: Analyze