Skip to main content
Home

System Design

Practice architecture decisions with guided lessons, interactive diagrams, and simulations.

Beginner

Design a Rate Limiter

Traffic Control

Throttle requests per user or IP using token bucket, sliding window and distributed counters.

rate-limitingtoken-bucketredisdistributed-countersapi-gateway
Live35 min
Open Design a Rate Limiter
Beginner

Design Pastebin

Storage

Store and share text snippets with expiry, using object storage and a metadata database.

object-storagemetadata-dbttlcdnestimation
Live30 min
Open Design Pastebin
Beginner

Design a Unique ID Generator

Distributed Systems

Generate globally unique, roughly time-ordered IDs across many machines (Snowflake style).

snowflakeuuidclock-skewshardingordering
Coming soon30 min
Design a Unique ID Generator is not available yet
Beginner

Design a Notification System

Messaging

Send push, SMS and email notifications reliably with queues, retries and user preferences.

message-queueretriesfan-outidempotencythird-party-apis
Coming soon40 min
Design a Notification System is not available yet
Beginner

Design a Distributed Cache

Storage

Build a Redis-like cache with eviction policies, consistent hashing and replication.

cachinglruconsistent-hashingreplicationcache-invalidation
Coming soon40 min
Design a Distributed Cache is not available yet
Beginner

Design a Job Scheduler

Distributed Systems

Run delayed and recurring jobs at scale with exactly-once-ish execution and failure recovery.

schedulingqueuesleader-electionretriesidempotency
Coming soon40 min
Design a Job Scheduler is not available yet
Intermediate

Design a Chat and Messaging App

Real-Time Systems

One-to-one and group chat with real-time delivery, offline sync, read receipts and presence.

websocketsmessage-orderingpresencefan-outoffline-sync
Coming soon50 min
Design a Chat and Messaging App is not available yet
Intermediate

Design a News Feed

Social Systems

Generate personalised feeds using fan-out on write, fan-out on read and hybrid approaches.

fan-outrankingcachinggraphcelebrity-problem
Coming soon50 min
Design a News Feed is not available yet
Intermediate

Design Typeahead Autocomplete

Search

Return top suggestions in milliseconds as the user types, using tries and offline aggregation.

trietop-kcachinglow-latencydata-pipeline
Coming soon45 min
Design Typeahead Autocomplete is not available yet
Intermediate

Design a Web Crawler

Search

Crawl billions of pages politely with URL frontier, deduplication and distributed workers.

url-frontierdeduplicationbloom-filterpolitenessbfs
Coming soon50 min
Design a Web Crawler is not available yet
Intermediate

Design File Storage and Sync (Dropbox)

Storage

Sync files across devices using chunking, deduplication, delta sync and conflict resolution.

chunkingdeduplicationdelta-syncconflict-resolutionobject-storage
Coming soon55 min
Design File Storage and Sync (Dropbox) is not available yet
Intermediate

Design Video Streaming (YouTube / Netflix)

Media Systems

Upload, transcode and stream video globally with adaptive bitrate and CDNs.

cdntranscodingadaptive-bitrateobject-storagebandwidth-estimation
Coming soon55 min
Design Video Streaming (YouTube / Netflix) is not available yet
Intermediate

Design a Ride-Hailing Service (Uber)

Geo Systems

Match riders with nearby drivers in real time using geospatial indexing and live location updates.

geospatial-indexgeohashquadtreematchingreal-time-location
Coming soon55 min
Design a Ride-Hailing Service (Uber) is not available yet
Intermediate

Design a Distributed Key-Value Store

Storage

Build a Dynamo-style store with partitioning, replication, quorum reads and writes, and failure handling.

consistent-hashingquorumreplicationgossipcap-theorem
Coming soon55 min
Design a Distributed Key-Value Store is not available yet
Intermediate

Design a Distributed Message Queue (Kafka-like)

Messaging

Durable, ordered, high-throughput messaging with partitions, consumer groups and offsets.

partitionsconsumer-groupsoffsetsappend-only-logdelivery-semantics
Coming soon55 min
Design a Distributed Message Queue (Kafka-like) is not available yet
Intermediate

Design a Ticket Booking System

Transactions

Prevent double booking under heavy concurrency with seat locking, holds and payment timeouts.

concurrencylockingtransactionsholdsflash-sale
Coming soon50 min
Design a Ticket Booking System is not available yet
Advanced

Design a Distributed Lock Service

Consensus

Provide safe mutual exclusion across machines using leases, fencing tokens and consensus.

consensusraftleasesfencing-tokenssplit-brain
Coming soon55 min
Design a Distributed Lock Service is not available yet
Advanced

Design a Payment System

Transactions

Process payments correctly with idempotency, ledgers, reconciliation and failure recovery.

idempotencyledgerreconciliationsagaexactly-once
Coming soon60 min
Design a Payment System is not available yet
Advanced

Design an Ad Click Aggregator

Data Pipelines

Count billions of clicks accurately in near real time with stream processing and late-event handling.

stream-processingwindowingexactly-oncelambda-architecturededuplication
Coming soon60 min
Design an Ad Click Aggregator is not available yet
Advanced

Design a Metrics and Monitoring System

Data Pipelines

Collect, store and query time-series metrics with alerting, downsampling and retention.

time-seriesdownsamplingalertingcompressionpush-vs-pull
Coming soon55 min
Design a Metrics and Monitoring System is not available yet
Advanced

Design a Collaborative Editor (Google Docs)

Real-Time Systems

Let many users edit one document live using operational transform or CRDTs, with history and presence.

operational-transformcrdtwebsocketsconflict-resolutionversioning
Coming soon60 min
Design a Collaborative Editor (Google Docs) is not available yet
Advanced

Design a Distributed File System (GFS / HDFS)

Storage

Store petabytes across commodity machines with a metadata master, chunk replication and recovery.

chunkingreplicationmetadata-serverfault-tolerancerebalancing
Coming soon60 min
Design a Distributed File System (GFS / HDFS) is not available yet
Advanced

Design a Stock Exchange

Low-Latency Systems

Match orders with strict fairness and microsecond latency using an order book and sequencer.

order-bookmatching-enginesequencerlow-latencyevent-sourcing
Coming soon60 min
Design a Stock Exchange is not available yet
Advanced

Design a Multi-Region Active-Active Architecture

Architecture

Capstone: serve users from several regions with replication, failover, data residency and conflict handling.

multi-regionreplicationfailovergeo-routingconsistency-models
Coming soon65 min
Design a Multi-Region Active-Active Architecture is not available yet
Choose a live lesson to begin