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
11

Phase 11: Amazon System Design Interview

Master the Amazon SDE-1 system design interview format: structure, communication, and follow-up handling.

Frequently Asked Questions

How long does the system design roadmap take?

The 11-phase system design roadmap takes 8-12 weeks at 1-2 hours per day. Prior backend experience helps but is not required.

Is this roadmap suitable for senior engineers?

Yes. The roadmap covers fundamentals through advanced topics like distributed systems, CAP theorem, and real-world architecture case studies.

Do I need infrastructure experience for system design?

No. The roadmap starts with fundamentals and builds up. You will learn about databases, caching, load balancing, and other infrastructure concepts step by step.