bugfree Icon
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course

System Design Question

Design a Key-Value Store like Redis or DynamoDB

bugfree Icon

Hello, I am bugfree Assistant. Feel free to ask me for any question related to this problem

Functional Requirements:

  • Store and retrieve values by key (get, put operations).
  • Update the value for an existing key.
  • Delete a key-value pair.
  • Support basic atomicity for single-key operations (no partial writes).

Non-Functional Requirements:

  • Scalability: Should handle increasing data and request volume by adding more nodes.
  • Durability: Data should not be lost in case of node failures.
  • Availability: System should be able to serve requests even if some nodes are down.
  • Consistency: For this design, prioritize eventual consistency (like DynamoDB), but allow for configuration of stronger consistency if needed.
  • Low latency: Reads and writes should be fast (ideally under a few milliseconds for in-memory data).
  • Fault tolerance: System should continue to operate in the presence of node or network failures.

System Design Diagrams

Zoom In and Out via trackpad or posture