Skip to content
Roadmap System Design

System Design

Master system design fundamentals, low-level design, high-level architecture, and interview preparation. 11 phases from foundations to real-world case studies.

Your Progress

Complete all 11 phases to master this track

0 / 11
Phases
0 / 178
Topics
0%
Complete

System design roadmap — 11 phases covering scalability, load balancing, caching, databases, messaging, and real-world case studies.

1

Phase 1: System Design Foundations

Current

Understand the core concepts of system design: requirements, scalability, reliability, and tradeoffs.

intermediate Phase 1

Understand system design as the process of defining architecture, components, and data flow.

30m
0 problems
intermediate Phase 1

Learn why system design interviews test architectural thinking and tradeoff analysis.

30m
0 problems
intermediate Phase 1

Define what the system must do from the user's perspective.

45m
0 problems
intermediate Phase 1

Define quality attributes: performance, scalability, reliability, availability.

45m
0 problems
intermediate Phase 1

Understand horizontal and vertical scaling strategies for growing systems.

1h
0 problems
intermediate Phase 1

Measure and improve uptime with redundancy and failover mechanisms.

45m
0 problems
intermediate Phase 1

Design systems that perform correctly under various conditions.

45m
0 problems
intermediate Phase 1

Write systems that are easy to understand, modify, and extend.

30m
0 problems
intermediate Phase 1

Optimize response times and throughput for user satisfaction.

45m
0 problems
intermediate Phase 1

Understand and minimize delays in system communication.

30m
0 problems
intermediate Phase 1

Measure and optimize the number of operations per unit time.

30m
0 problems
intermediate Phase 1

Understand strong vs eventual consistency in distributed systems.

45m
0 problems
intermediate Phase 1

Master the fundamental tradeoff between consistency, availability, and partition tolerance.

1h
0 problems
advanced Phase 1

Extend CAP with latency vs consistency tradeoffs in normal operations.

45m
0 problems
intermediate Phase 1

Learn to identify and communicate architectural tradeoffs clearly.

45m
0 problems
2

Phase 2: Web Architecture

Design web application architectures with clients, servers, load balancers, and service communication.

intermediate Phase 2

Understand client architectures: web, mobile, and desktop applications.

30m
0 problems
intermediate Phase 2

Learn about application servers, their role, and request handling.

30m
0 problems
intermediate Phase 2

Design APIs with proper endpoints, versioning, and documentation.

45m
0 problems
intermediate Phase 2

Build RESTful APIs with proper HTTP methods, status codes, and resource modeling.

1h
0 problems
intermediate Phase 2

Use HTTP protocols effectively in distributed system communication.

30m
0 problems
intermediate Phase 2

Use Nginx or similar as a reverse proxy for load balancing and security.

30m
0 problems
intermediate Phase 2

Distribute traffic with round-robin, least connections, and consistent hashing.

45m
0 problems
intermediate Phase 2

Add more machines to handle increased load across the system.

45m
0 problems
intermediate Phase 2

Upgrade existing machines with more CPU, RAM, or storage.

30m
0 problems
intermediate Phase 2

Design services that don't store session state for easy scaling.

30m
0 problems
intermediate Phase 2

Manage stateful services with session affinity or external state stores.

45m
0 problems
intermediate Phase 2

Use an API gateway for routing, authentication, and rate limiting.

45m
0 problems
intermediate Phase 2

Enable services to find each other dynamically in microservice architectures.

30m
0 problems
intermediate Phase 2

Use CDNs to cache static assets and reduce origin server load.

30m
0 problems
intermediate Phase 2

Understand DNS resolution, TTL, and geographic routing in system design.

30m
0 problems
3

Phase 3: Databases

Choose and design database solutions: SQL vs NoSQL, scaling strategies, indexing, and replication.

intermediate Phase 3

Choose SQL databases for structured data with ACID guarantees.

45m
0 problems
intermediate Phase 3

Choose NoSQL for flexible schemas: document, key-value, column-family, graph.

1h
0 problems
intermediate Phase 3

Compare tradeoffs between relational and non-relational databases.

45m
0 problems
intermediate Phase 3

Scale databases with read replicas, sharding, and connection pooling.

1h
0 problems
intermediate Phase 3

Create B-tree, hash, and composite indexes for query optimization.

45m
0 problems
intermediate Phase 3

Replicate data across nodes for availability and read scaling.

45m
0 problems
advanced Phase 3

Partition data across machines with consistent hashing strategies.

1h
0 problems
intermediate Phase 3

Split large tables by range, hash, or list for manageability.

45m
0 problems
intermediate Phase 3

Offload read traffic to replica databases for performance.

30m
0 problems
intermediate Phase 3

Design primary-replica setups with failover and consistency.

45m
0 problems
intermediate Phase 3

Use transactions for atomic operations across multiple changes.

45m
0 problems
intermediate Phase 3

Master Atomicity, Consistency, Isolation, Durability for data integrity.

45m
0 problems
intermediate Phase 3

Understand when eventual consistency is acceptable and how it works.

30m
0 problems
intermediate Phase 3

Reuse database connections to reduce overhead and improve performance.

30m
0 problems
4

Phase 4: Caching

Design caching strategies to reduce latency, decrease load, and improve system performance.

intermediate Phase 4

Understand caching benefits: reduced latency, decreased load, cost savings.

30m
0 problems
intermediate Phase 4

Implement the most common caching pattern: check cache, then database.

45m
0 problems
intermediate Phase 4

Cache transparently loads data on first access from the database.

30m
0 problems
intermediate Phase 4

Write to cache and database simultaneously for consistency.

30m
0 problems
intermediate Phase 4

Write to cache first, asynchronously persist to database for performance.

30m
0 problems
intermediate Phase 4

Implement strategies to keep cached data fresh and correct.

45m
0 problems
intermediate Phase 4

Set expiration times on cached entries for automatic freshness.

30m
0 problems
intermediate Phase 4

Remove old entries when cache is full: LRU, LFU, FIFO, TTL.

45m
0 problems
intermediate Phase 4

Implement Least Recently Used eviction for memory-efficient caching.

45m
0 problems
intermediate Phase 4

Use Redis for in-memory caching with data structures and persistence.

1h
0 problems
advanced Phase 4

Prevent thundering herd when many requests hit expired cache simultaneously.

45m
0 problems
advanced Phase 4

Handle frequently accessed keys that can cause cache hotspots.

30m
0 problems
advanced Phase 4

Scale caching across multiple nodes with consistent hashing.

45m
0 problems
5

Phase 5: Messaging

Design message-driven architectures with queues, event streaming, and delivery guarantees.

intermediate Phase 5

Decouple services with asynchronous message passing for reliability.

45m
0 problems
intermediate Phase 5

Use Kafka for high-throughput, durable, distributed event streaming.

1h
0 problems
intermediate Phase 5

Use RabbitMQ for traditional message queuing with routing and acknowledgments.

45m
0 problems
intermediate Phase 5

Design message producers with proper serialization and error handling.

30m
0 problems
intermediate Phase 5

Build message consumers with concurrency, offset management, and idempotency.

45m
0 problems
intermediate Phase 5

Organize messages into topics for logical separation and routing.

30m
0 problems
intermediate Phase 5

Partition messages for parallel processing and ordering guarantees.

45m
0 problems
intermediate Phase 5

Scale consumption with consumer groups for load balancing.

30m
0 problems
intermediate Phase 5

Guarantee message order within partitions and handle ordering tradeoffs.

45m
0 problems
intermediate Phase 5

Understand at-most-once, at-least-once, and exactly-once delivery.

45m
0 problems
intermediate Phase 5

Implement fire-and-forget messaging with possible data loss.

30m
0 problems
intermediate Phase 5

Ensure message delivery with acknowledgments and retries.

30m
0 problems
advanced Phase 5

Achieve exactly-once semantics with idempotent producers and transactions.

45m
0 problems
intermediate Phase 5

Route failed messages to DLQ for debugging and retry.

30m
0 problems
intermediate Phase 5

Implement retry with backoff, jitter, and circuit breaking.

45m
0 problems
advanced Phase 5

Handle slow consumers and prevent system overload with flow control.

30m
0 problems
6

Phase 6: Distributed Systems

Master distributed system patterns: communication, fault tolerance, rate limiting, and observability.

intermediate Phase 6

Understand the challenges of building systems across multiple machines.

45m
0 problems
intermediate Phase 6

Choose synchronous (HTTP/gRPC) vs asynchronous (queues) communication.

45m
0 problems
intermediate Phase 6

Compare blocking vs non-blocking communication patterns.

30m
0 problems
intermediate Phase 6

Set appropriate timeouts to prevent cascading failures.

30m
0 problems
intermediate Phase 6

Implement automatic retries with exponential backoff and jitter.

30m
0 problems
intermediate Phase 6

Increase retry delays exponentially to reduce system load.

30m
0 problems
intermediate Phase 6

Prevent cascading failures with circuit breaker pattern.

45m
0 problems
intermediate Phase 6

Design idempotent operations for safe retries without side effects.

45m
0 problems
advanced Phase 6

Coordinate access to shared resources across distributed services.

1h
0 problems
advanced Phase 6

Elect a single leader for coordination using Raft or similar protocols.

45m
0 problems
intermediate Phase 6

Detect failed nodes and maintain cluster membership with heartbeats.

30m
0 problems
intermediate Phase 6

Design systems that continue operating despite component failures.

45m
0 problems
intermediate Phase 6

Reduce functionality gracefully when components fail.

30m
0 problems
intermediate Phase 6

Protect APIs with token bucket, sliding window, or leaky bucket algorithms.

1h
0 problems
intermediate Phase 6

Drop excess requests to maintain system stability under heavy load.

30m
0 problems
intermediate Phase 6

Monitor system health with logs, metrics, and distributed tracing.

45m
0 problems
intermediate Phase 6

Implement structured logging for debugging and audit trails.

30m
0 problems
intermediate Phase 6

Collect and analyze metrics: counters, gauges, histograms, percentiles.

30m
0 problems
intermediate Phase 6

Track requests across services with Jaeger, Zipkin, or OpenTelemetry.

45m
0 problems
7

Phase 7: Low-Level Design

Design individual modules and classes with proper OOP, SOLID principles, and design patterns.

intermediate Phase 7

Design individual modules and classes with proper OOP and patterns.

30m
0 problems
intermediate Phase 7

Model real-world entities with classes, properties, and methods.

45m
0 problems
intermediate Phase 7

Hide internal state and expose only necessary interfaces.

30m
0 problems
intermediate Phase 7

Define contracts with abstract classes and interfaces.

30m
0 problems
intermediate Phase 7

Model IS-A relationships while preferring composition.

30m
0 problems
intermediate Phase 7

Enable flexible behavior through method overriding and interfaces.

30m
0 problems
intermediate Phase 7

Build complex objects by composing simpler ones.

30m
0 problems
intermediate Phase 7

Master Single Responsibility, Open-Closed, Liskov, Interface Segregation, Dependency Inversion.

1h 30m
0 problems
intermediate Phase 7

Don't Repeat Yourself: eliminate duplication through abstraction.

30m
0 problems
intermediate Phase 7

Keep It Simple: prefer straightforward solutions over clever ones.

30m
0 problems
intermediate Phase 7

You Aren't Gonna Need It: build only what's required now.

30m
0 problems
intermediate Phase 7

Define clear contracts between components for loose coupling.

30m
0 problems
intermediate Phase 7

Read and create UML diagrams for system documentation.

45m
0 problems
intermediate Phase 7

Model class relationships: association, composition, aggregation, inheritance.

45m
0 problems
intermediate Phase 7

Model object interactions over time for workflow documentation.

45m
0 problems
intermediate Phase 7

Recognize and apply creational, structural, and behavioral patterns.

1h
0 problems
intermediate Phase 7

Create objects without specifying exact classes in the creation logic.

30m
0 problems
intermediate Phase 7

Construct complex objects step by step with readable code.

30m
0 problems
intermediate Phase 7

Define a family of algorithms and make them interchangeable.

30m
0 problems
intermediate Phase 7

Implement publish-subscribe for event-driven communication.

30m
0 problems
intermediate Phase 7

Ensure a class has only one instance with global access.

30m
0 problems
intermediate Phase 7

Convert one interface to another for compatibility.

30m
0 problems
intermediate Phase 7

Add behavior to objects dynamically without modifying their class.

30m
0 problems
intermediate Phase 7

Allow objects to change behavior when their internal state changes.

30m
0 problems
intermediate Phase 7

Inject dependencies for testable, loosely-coupled code.

45m
0 problems
8

Phase 8: LLD Practice

Apply low-level design skills to real-world systems: parking lots, elevators, chat apps, and more.

intermediate Phase 8

Design a parking lot system with different vehicle types and pricing.

1h 30m
0 problems
intermediate Phase 8

Design a library system with book catalog, borrowing, and returns.

1h 30m
0 problems
intermediate Phase 8

Design an ATM system with card authentication and cash dispensing.

1h 30m
0 problems
intermediate Phase 8

Design an elevator control system with scheduling algorithms.

2h
0 problems
intermediate Phase 8

Design a vending machine with inventory, selection, and payment.

1h 30m
0 problems
intermediate Phase 8

Design a coffee machine with drink selection and customization.

1h 30m
0 problems
intermediate Phase 8

Design a movie booking system with seats, shows, and pricing.

2h
0 problems
intermediate Phase 8

Design a ride-sharing system with matching, routing, and pricing.

2h
0 problems
intermediate Phase 8

Design a food delivery system with restaurants, orders, and delivery.

2h
0 problems
intermediate Phase 8

Design a notification service with multiple channels and preferences.

1h 30m
0 problems
intermediate Phase 8

Design a chess game with rules validation, turns, and win detection.

2h
0 problems
intermediate Phase 8

Design a tic-tac-toe game with multiplayer support.

1h 30m
0 problems
intermediate Phase 8

Design an expense splitting system with debts and settlements.

1h 30m
0 problems
intermediate Phase 8

Design a file system with directories, files, and permissions.

1h 30m
0 problems
9

Phase 9: High-Level Design Framework

Learn the structured approach to system design interviews: requirements, estimation, design, and discussion.

intermediate Phase 9

Ask the right questions to understand scope and constraints.

45m
0 problems
intermediate Phase 9

Define user-facing features for the system design.

30m
0 problems
intermediate Phase 9

Define quality attributes: performance, scalability, availability.

30m
0 problems
intermediate Phase 9

Calculate storage, bandwidth, and QPS for capacity planning.

45m
0 problems
intermediate Phase 9

Design clean, versioned APIs with proper endpoints and contracts.

45m
0 problems
intermediate Phase 9

Design database schemas, entity relationships, and data flow.

45m
0 problems
intermediate Phase 9

Draw the system overview with clients, servers, databases, and caches.

1h
0 problems
intermediate Phase 9

Choose SQL vs NoSQL, design schemas, and plan for scaling.

45m
0 problems
intermediate Phase 9

Identify what to cache, caching strategy, and invalidation approach.

45m
0 problems
intermediate Phase 9

Identify async processing needs and choose messaging solutions.

45m
0 problems
intermediate Phase 9

Plan horizontal scaling, load balancing, and auto-scaling.

45m
0 problems
intermediate Phase 9

Plan for fault tolerance, redundancy, and disaster recovery.

45m
0 problems
intermediate Phase 9

Address authentication, authorization, encryption, and compliance.

45m
0 problems
intermediate Phase 9

Plan logging, metrics, alerting, and observability.

30m
0 problems
intermediate Phase 9

Communicate architectural decisions and their implications.

45m
0 problems
intermediate Phase 9

Find and address performance bottlenecks in system design.

45m
0 problems
intermediate Phase 9

Discuss potential enhancements and scaling considerations.

30m
0 problems
10

Phase 10: HLD Case Studies

Design real-world systems end-to-end: URL shorteners, social feeds, chat systems, and e-commerce platforms.

advanced Phase 10

Design a URL shortening service like bit.ly with analytics.

2h
0 problems
advanced Phase 10

Design a distributed rate limiter for API protection.

1h 30m
0 problems
advanced Phase 10

Design a pastebin service like Pastebin with sharing features.

1h 30m
0 problems
advanced Phase 10

Design Twitter's timeline, tweet, and social graph system.

2h
0 problems
advanced Phase 10

Design Instagram's photo sharing and feed generation system.

2h
0 problems
advanced Phase 10

Design YouTube's video upload, processing, and streaming platform.

2h
0 problems
advanced Phase 10

Design Netflix's content delivery and recommendation system.

2h
0 problems
advanced Phase 10

Design a real-time messaging system with presence and delivery.

2h
0 problems
advanced Phase 10

Design a multi-channel notification system with preferences.

1h 30m
0 problems
advanced Phase 10

Design a distributed file storage system like S3.

1h 30m
0 problems
advanced Phase 10

Design a cloud storage service like Google Drive.

2h
0 problems
advanced Phase 10

Design a food delivery platform end-to-end.

2h
0 problems
advanced Phase 10

Design a ride-sharing platform with matching and routing.

2h
0 problems
advanced Phase 10

Design an e-commerce platform with cart, checkout, and inventory.

2h
0 problems
advanced Phase 10

Design a typeahead/autocomplete system with ranking.

1h 30m
0 problems
advanced Phase 10

Design a news feed generation system with fanout.

2h
0 problems
advanced Phase 10

Design a distributed job scheduling and execution system.

1h 30m
0 problems
advanced Phase 10

Design a distributed caching system like Memcached.

1h 30m
0 problems
advanced Phase 10

Design an API gateway with routing, auth, and rate limiting.

1h 30m
0 problems