Skip to content
RoadmapSystem Design

System Design

Master system design fundamentals, low-level design, high-level architecture, and Amazon 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
1

Phase 1: System Design Foundations

Current

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

intermediatePhase 43

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

30m
0 problems
intermediatePhase 43

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

30m
0 problems
intermediatePhase 43

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

45m
0 problems
intermediatePhase 43

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

45m
0 problems
intermediatePhase 43

Understand horizontal and vertical scaling strategies for growing systems.

1h
0 problems
intermediatePhase 43

Measure and improve uptime with redundancy and failover mechanisms.

45m
0 problems
intermediatePhase 43

Design systems that perform correctly under various conditions.

45m
0 problems
intermediatePhase 43

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

30m
0 problems
intermediatePhase 43

Optimize response times and throughput for user satisfaction.

45m
0 problems
intermediatePhase 43

Understand and minimize delays in system communication.

30m
0 problems
intermediatePhase 43

Measure and optimize the number of operations per unit time.

30m
0 problems
intermediatePhase 43

Understand strong vs eventual consistency in distributed systems.

45m
0 problems
intermediatePhase 43

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

1h
0 problems
advancedPhase 43

Extend CAP with latency vs consistency tradeoffs in normal operations.

45m
0 problems
intermediatePhase 43

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.

intermediatePhase 44

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

30m
0 problems
intermediatePhase 44

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

30m
0 problems
intermediatePhase 44

Design APIs with proper endpoints, versioning, and documentation.

45m
0 problems
intermediatePhase 44

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

1h
0 problems
intermediatePhase 44

Use HTTP protocols effectively in distributed system communication.

30m
0 problems
intermediatePhase 44

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

30m
0 problems
intermediatePhase 44

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

45m
0 problems
intermediatePhase 44

Add more machines to handle increased load across the system.

45m
0 problems
intermediatePhase 44

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

30m
0 problems
intermediatePhase 44

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

30m
0 problems
intermediatePhase 44

Manage stateful services with session affinity or external state stores.

45m
0 problems
intermediatePhase 44

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

45m
0 problems
intermediatePhase 44

Enable services to find each other dynamically in microservice architectures.

30m
0 problems
intermediatePhase 44

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

30m
0 problems
intermediatePhase 44

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.

intermediatePhase 45

Choose SQL databases for structured data with ACID guarantees.

45m
0 problems
intermediatePhase 45

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

1h
0 problems
intermediatePhase 45

Compare tradeoffs between relational and non-relational databases.

45m
0 problems
intermediatePhase 45

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

1h
0 problems
intermediatePhase 45

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

45m
0 problems
intermediatePhase 45

Replicate data across nodes for availability and read scaling.

45m
0 problems
advancedPhase 45

Partition data across machines with consistent hashing strategies.

1h
0 problems
intermediatePhase 45

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

45m
0 problems
intermediatePhase 45

Offload read traffic to replica databases for performance.

30m
0 problems
intermediatePhase 45

Design primary-replica setups with failover and consistency.

45m
0 problems
intermediatePhase 45

Use transactions for atomic operations across multiple changes.

45m
0 problems
intermediatePhase 45

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

45m
0 problems
intermediatePhase 45

Understand when eventual consistency is acceptable and how it works.

30m
0 problems
intermediatePhase 45

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.

5

Phase 5: Messaging

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

intermediatePhase 47

Decouple services with asynchronous message passing for reliability.

45m
0 problems
intermediatePhase 47

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

1h
0 problems
intermediatePhase 47

Use RabbitMQ for traditional message queuing with routing and acknowledgments.

45m
0 problems
intermediatePhase 47

Design message producers with proper serialization and error handling.

30m
0 problems
intermediatePhase 47

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

45m
0 problems
intermediatePhase 47

Organize messages into topics for logical separation and routing.

30m
0 problems
intermediatePhase 47

Partition messages for parallel processing and ordering guarantees.

45m
0 problems
intermediatePhase 47

Scale consumption with consumer groups for load balancing.

30m
0 problems
intermediatePhase 47

Guarantee message order within partitions and handle ordering tradeoffs.

45m
0 problems
intermediatePhase 47

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

45m
0 problems
intermediatePhase 47

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

30m
0 problems
intermediatePhase 47

Ensure message delivery with acknowledgments and retries.

30m
0 problems
advancedPhase 47

Achieve exactly-once semantics with idempotent producers and transactions.

45m
0 problems
intermediatePhase 47

Route failed messages to DLQ for debugging and retry.

30m
0 problems
intermediatePhase 47

Implement retry with backoff, jitter, and circuit breaking.

45m
0 problems
advancedPhase 47

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.

intermediatePhase 48

Understand the challenges of building systems across multiple machines.

45m
0 problems
intermediatePhase 48

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

45m
0 problems
intermediatePhase 48

Compare blocking vs non-blocking communication patterns.

30m
0 problems
intermediatePhase 48

Set appropriate timeouts to prevent cascading failures.

30m
0 problems
intermediatePhase 48

Implement automatic retries with exponential backoff and jitter.

30m
0 problems
intermediatePhase 48

Increase retry delays exponentially to reduce system load.

30m
0 problems
intermediatePhase 48

Prevent cascading failures with circuit breaker pattern.

45m
0 problems
intermediatePhase 48

Design idempotent operations for safe retries without side effects.

45m
0 problems
advancedPhase 48

Coordinate access to shared resources across distributed services.

1h
0 problems
advancedPhase 48

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

45m
0 problems
intermediatePhase 48

Detect failed nodes and maintain cluster membership with heartbeats.

30m
0 problems
intermediatePhase 48

Design systems that continue operating despite component failures.

45m
0 problems
intermediatePhase 48

Reduce functionality gracefully when components fail.

30m
0 problems
intermediatePhase 48

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

1h
0 problems
intermediatePhase 48

Drop excess requests to maintain system stability under heavy load.

30m
0 problems
intermediatePhase 48

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

45m
0 problems
intermediatePhase 48

Implement structured logging for debugging and audit trails.

30m
0 problems
intermediatePhase 48

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

30m
0 problems
intermediatePhase 48

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.

intermediatePhase 49

Design individual modules and classes with proper OOP and patterns.

30m
0 problems
intermediatePhase 49

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

45m
0 problems
intermediatePhase 49

Hide internal state and expose only necessary interfaces.

30m
0 problems
intermediatePhase 49

Define contracts with abstract classes and interfaces.

30m
0 problems
intermediatePhase 49

Model IS-A relationships while preferring composition.

30m
0 problems
intermediatePhase 49

Enable flexible behavior through method overriding and interfaces.

30m
0 problems
intermediatePhase 49

Build complex objects by composing simpler ones.

30m
0 problems
intermediatePhase 49

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

1h 30m
0 problems
intermediatePhase 49

Don't Repeat Yourself: eliminate duplication through abstraction.

30m
0 problems
intermediatePhase 49

Keep It Simple: prefer straightforward solutions over clever ones.

30m
0 problems
intermediatePhase 49

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

30m
0 problems
intermediatePhase 49

Define clear contracts between components for loose coupling.

30m
0 problems
intermediatePhase 49

Read and create UML diagrams for system documentation.

45m
0 problems
intermediatePhase 49

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

45m
0 problems
intermediatePhase 49

Model object interactions over time for workflow documentation.

45m
0 problems
intermediatePhase 49

Recognize and apply creational, structural, and behavioral patterns.

1h
0 problems
intermediatePhase 49

Create objects without specifying exact classes in the creation logic.

30m
0 problems
intermediatePhase 49

Construct complex objects step by step with readable code.

30m
0 problems
intermediatePhase 49

Define a family of algorithms and make them interchangeable.

30m
0 problems
intermediatePhase 49

Implement publish-subscribe for event-driven communication.

30m
0 problems
intermediatePhase 49

Ensure a class has only one instance with global access.

30m
0 problems
intermediatePhase 49

Convert one interface to another for compatibility.

30m
0 problems
intermediatePhase 49

Add behavior to objects dynamically without modifying their class.

30m
0 problems
intermediatePhase 49

Allow objects to change behavior when their internal state changes.

30m
0 problems
intermediatePhase 49

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.

intermediatePhase 50

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

1h 30m
0 problems
intermediatePhase 50

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

1h 30m
0 problems
intermediatePhase 50

Design an ATM system with card authentication and cash dispensing.

1h 30m
0 problems
intermediatePhase 50

Design an elevator control system with scheduling algorithms.

2h
0 problems
intermediatePhase 50

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

1h 30m
0 problems
intermediatePhase 50

Design a coffee machine with drink selection and customization.

1h 30m
0 problems
intermediatePhase 50

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

2h
0 problems
intermediatePhase 50

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

2h
0 problems
intermediatePhase 50

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

2h
0 problems
intermediatePhase 50

Design a notification service with multiple channels and preferences.

1h 30m
0 problems
intermediatePhase 50

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

2h
0 problems
intermediatePhase 50

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

1h 30m
0 problems
intermediatePhase 50

Design an expense splitting system with debts and settlements.

1h 30m
0 problems
intermediatePhase 50

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.

intermediatePhase 51

Ask the right questions to understand scope and constraints.

45m
0 problems
intermediatePhase 51

Define user-facing features for the system design.

30m
0 problems
intermediatePhase 51

Define quality attributes: performance, scalability, availability.

30m
0 problems
intermediatePhase 51

Calculate storage, bandwidth, and QPS for capacity planning.

45m
0 problems
intermediatePhase 51

Design clean, versioned APIs with proper endpoints and contracts.

45m
0 problems
intermediatePhase 51

Design database schemas, entity relationships, and data flow.

45m
0 problems
intermediatePhase 51

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

1h
0 problems
intermediatePhase 51

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

45m
0 problems
intermediatePhase 51

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

45m
0 problems
intermediatePhase 51

Identify async processing needs and choose messaging solutions.

45m
0 problems
intermediatePhase 51

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

45m
0 problems
intermediatePhase 51

Plan for fault tolerance, redundancy, and disaster recovery.

45m
0 problems
intermediatePhase 51

Address authentication, authorization, encryption, and compliance.

45m
0 problems
intermediatePhase 51

Plan logging, metrics, alerting, and observability.

30m
0 problems
intermediatePhase 51

Communicate architectural decisions and their implications.

45m
0 problems
intermediatePhase 51

Find and address performance bottlenecks in system design.

45m
0 problems
intermediatePhase 51

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.

advancedPhase 52

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

2h
0 problems
advancedPhase 52

Design a distributed rate limiter for API protection.

1h 30m
0 problems
advancedPhase 52

Design a pastebin service like Pastebin with sharing features.

1h 30m
0 problems
advancedPhase 52

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

2h
0 problems
advancedPhase 52

Design Instagram's photo sharing and feed generation system.

2h
0 problems
advancedPhase 52

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

2h
0 problems
advancedPhase 52

Design Netflix's content delivery and recommendation system.

2h
0 problems
advancedPhase 52

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

2h
0 problems
advancedPhase 52

Design a multi-channel notification system with preferences.

1h 30m
0 problems
advancedPhase 52

Design a distributed file storage system like S3.

1h 30m
0 problems
advancedPhase 52

Design a cloud storage service like Google Drive.

2h
0 problems
advancedPhase 52

Design a food delivery platform end-to-end.

2h
0 problems
advancedPhase 52

Design a ride-sharing platform with matching and routing.

2h
0 problems
advancedPhase 52

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

2h
0 problems
advancedPhase 52

Design a typeahead/autocomplete system with ranking.

1h 30m
0 problems
advancedPhase 52

Design a news feed generation system with fanout.

2h
0 problems
advancedPhase 52

Design a distributed job scheduling and execution system.

1h 30m
0 problems
advancedPhase 52

Design a distributed caching system like Memcached.

1h 30m
0 problems
advancedPhase 52

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

1h 30m
0 problems