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

Complete & continue

Defend it out loud

The AI interviewer will probe your design for Distributed Key-Value Store and score it.

Mock interview