← All roadmaps

System Design Roadmap

Everything you need to know about designing large-scale systems in @currentYear@

0%
0 done0 learning0 target
View interactive roadmap on roadmap.sh

Your learning path

Introduction

Introduction

What is System Design?
How to approach System Design?
Performance vs Scalability

Performance vs Scalability

Latency vs Throughput

Latency vs Throughput

Availability vs Consistency

Availability vs Consistency

CAP Theorem

CAP Theorem

Consistency Patterns

Consistency Patterns

Eventual Consistency
Weak Consistency
Strong Consistency
Availability Patterns

Availability Patterns

Fail-Over

Fail-Over

Replication

Replication

Availability in Numbers

Availability in Numbers

Background Jobs

Background Jobs

Event-Driven
Schedule Driven
Returning Results

Returning Results

Domain Name System

Domain Name System

Content Delivery Networks

Content Delivery Networks

Pull CDNs
Push CDNs
Load Balancers

Load Balancers

LB vs Reverse Proxy
Load Balancing Algorithms
Layer 7 Load Balancing
Layer 4 Load Balancing
Horizontal Scaling
Application Layer

Application Layer

Service Discovery
Microservices

Microservices

Databases

Databases

SQL vs NoSQL
Replication

Replication

Sharding

Sharding

Federation

Federation

Denormalization

Denormalization

SQL Tuning

SQL Tuning

Key-Value Store

Key-Value Store

Document Store

Document Store

Wide Column Store

Wide Column Store

Graph Databases

Graph Databases

Caching

Caching

Refresh Ahead

Refresh Ahead

Write-behind

Write-behind

Write-through

Write-through

Cache Aside

Cache Aside

Client Caching

Client Caching

CDN Caching

CDN Caching

Web Server Caching

Web Server Caching

Database Caching

Database Caching

Application Caching

Application Caching

Asynchronism

Asynchronism

Task Queues
Message Queues
Back Pressure
Idempotent Operations

Idempotent Operations

Communication

Communication

UDP
HTTP

HTTP

TCP

TCP

RPC

RPC

REST

REST

gRPC

gRPC

GraphQL

GraphQL

Performance Antipatterns

Performance Antipatterns

Busy Database

Busy Database

Busy Frontend

Busy Frontend

Chatty I/O

Chatty I/O

Extraneous Fetching

Extraneous Fetching

Improper Instantiation

Improper Instantiation

Monolithic Persistence

Monolithic Persistence

No Caching

No Caching

Noisy Neighbor

Noisy Neighbor

Retry Storm

Retry Storm

Synchronous I/O

Synchronous I/O

Monitoring

Monitoring

Security Monitoring
Health Monitoring
Availability Monitoring
Performance Monitoring
Usage Monitoring
Instrumentation
Visualization & Alerts
Cloud Design Patterns

Cloud Design Patterns

Messaging

Messaging

Sequential Convoy

Sequential Convoy

Scheduling Agent Supervisor

Scheduling Agent Supervisor

Queue-Based Load Leveling

Queue-Based Load Leveling

Publisher/Subscriber

Publisher/Subscriber

Priority Queue

Priority Queue

Pipes and Filters

Pipes and Filters

Competing Consumers

Competing Consumers

Choreography

Choreography

Claim Check

Claim Check

Async Request Reply

Async Request Reply

Data Management

Data Management

Valet Key

Valet Key

Static Content Hosting

Static Content Hosting

Sharding

Sharding

Materialized View

Materialized View

Index Table

Index Table

Event Sourcing

Event Sourcing

CQRS

CQRS

Cache-Aside

Cache-Aside

Design & Implementation

Design & Implementation

Strangler Fig

Strangler Fig

Static Content Hosting

Static Content Hosting

Sidecar

Sidecar

Pipes & Filters

Pipes & Filters

Leader Election

Leader Election

Gateway Routing

Gateway Routing

Gateway Offloading

Gateway Offloading

Gateway Aggregation

Gateway Aggregation

External Config Store

External Config Store

Compute Resource Consolidation

Compute Resource Consolidation

CQRS

CQRS

Backends for Frontend

Backends for Frontend

Anti-Corruption Layer

Anti-Corruption Layer

Ambassador

Ambassador

Reliability Patterns

Reliability Patterns

Availability

Availability

Deployment Stamps

Deployment Stamps

Geodes

Geodes

Health Endpoint Monitoring

Health Endpoint Monitoring

Queue-Based Load Leveling

Queue-Based Load Leveling

Throttling

Throttling

High Availability

High Availability

Deployment Stamps

Deployment Stamps

Geodes

Geodes

Health Endpoint Monitoring

Health Endpoint Monitoring

Bulkhead

Bulkhead

Circuit Breaker

Circuit Breaker

Resiliency

Resiliency

Bulkhead

Bulkhead

Circuit Breaker

Circuit Breaker

Compensating Transaction

Compensating Transaction

Health Endpoint Monitoring

Health Endpoint Monitoring

Leader Election

Leader Election

Queue-Based Load Leveling

Queue-Based Load Leveling

Retry

Retry

Scheduler Agent Supervisor

Scheduler Agent Supervisor

Security

Security

Federated Identity

Federated Identity

Gatekeeper

Gatekeeper

Valet Key

Valet Key