Distributed Key-Value Store
Build a Dynamo-style store that stays available through node failures.
Hard50 minConsistent hashingQuorumsAnti-entropy
Designing a distributed key-value store means building something like Dynamo or Cassandra: a simple get/put interface on top of partitioning, replication, failure detection, and conflict handling. It is a tour of nearly every distributed-systems concept in one problem.
Clarify requirements
Functional
put(key, value),get(key),delete(key).- Keys up to 256 B, values up to 1 MB (typically ~1 KB).
- Optional per-key TTL.
- Tunable consistency per request.
Non-functional
- Highly available for writes and reads, even during node failures and partitions (AP leaning, as for a shopping cart or session store).
- Scales horizontally to hundreds of nodes, petabytes, millions of ops/s.
- Low latency: p99 < 10 ms within a region.
- Durable: acknowledged writes survive node failure.
- Automatic recovery and rebalancing.
Try it first
Set a timer, sketch your own design on paper, then compare it with the reference walkthrough.
50:00
Defend it out loud
The AI interviewer will probe your design for Distributed Key-Value Store and score it.