System design interview questionHardBasic System Component
Design a Key-Value Store like Redis or DynamoDB
Design a distributed key-value store (Redis/Dynamo-style): get/put by key, fast, across many nodes.
Interview scope
Client β Load Balancer β multiple App Servers (KV nodes). Show App β App replication and/or App β DB/Object durability. Client never hits storage nodesβ DB directly.
Functional requirements
- PUT key β value and GET key β value.
- Run on more than one storage node.
- Handle node failure at a high level (replication / another node).
Scale and quality goals
- Low latency reads/writes.
- Horizontal scale by adding nodes behind a balancer.
- Data should not live only in one process RAM forever without a plan.
Capacity assumption
Design for this scale
Assume ~200k ops/s mixed get/put across a cluster of storage app nodes.
Practice more than a diagram
Place components on the Froquiz canvas, connect the data flow, and see which decisions the scenario-specific review finds missing. The full exercise and review unlock with Premium.
Explore Premium β