Daily System Design

Learn system design.
One concept a day.

Architecture diagrams, real-world examples, trade-offs, and interview questions for each concept.

9 lessons
Interview questions

All lessons

Day 10

Distributed Consensus Protocols (Raft & Replicated State Machines)

How a cluster of unreliable servers agrees on one ordered sequence of events, using leader election and a replicated log.

Distributed SystemsConsensusConsistency
Start lesson
Day 09

Distributed Unique ID Generation (Twitter Snowflake & UUIDv7)

How to generate unique, roughly time-sortable IDs across many servers without a central database.

Distributed SystemsDatabasesIdentifiers
Start lesson
Day 08

Message Queues vs. Event Streams (RabbitMQ vs. Apache Kafka)

When to use a queue that deletes messages after delivery, and when to use a replayable, partitioned event log.

MessagingKafkaAsynchronous
Start lesson
Day 06

CAP & PACELC Theorems (Consistency vs. Availability)

What a distributed data store must give up during a network partition, and what it trades off the rest of the time.

Distributed SystemsConsistencyAvailability
Start lesson
Day 05

Consistent Hashing & Virtual Nodes

Add or remove servers while moving only a small fraction of keys, instead of reshuffling almost everything.

Distributed SystemsPartitioningScalability
Start lesson
Day 04

Database Sharding & Horizontal Partitioning

Split one logical dataset across many databases when a single primary can no longer keep up with storage or write volume.

DatabasesScalabilityPartitioning
Start lesson
Day 03

Database Replication & Read/Write Splitting

Scale reads and survive failures by copying data to replicas and routing queries by type.

DatabasesAvailabilityConsistency
Start lesson
Day 02

Caching Strategies & Invalidation Patterns

How in-memory caches speed up reads, the main read/write patterns, and how to keep a cache consistent with the source of truth.

CachingLatencyConsistency
Start lesson
Day 01

Load Balancing (Layer 4 vs. Layer 7)

How load balancers spread traffic across servers, and when to route at the transport layer versus the application layer.

NetworkingScalabilityReliability
Start lesson