Design of a Key-Value Store
Define the functional and non-functional requirements essential for designing a highly available key-value store. Analyze how needs like configurable consistency and always-write capability influence System Design decisions. Understand the simple get and put operations that enables complex distributed storage.
Requirements
We will design a key-value store that addresses the limitations of traditional databases.
Functional requirements
While standard key-value stores offer get and put operations, this design focuses on specific characteristics:
Configurable service: Applications often trade strong consistency for higher availability. The system must support configurable consistency models that allow users to balance availability, consistency, cost, and performance.
Note: These configurations are set when instantiating a key-value store instance and cannot be changed dynamically during operation.
Ability to ...