High-level Design of a Distributed Cache
Design the architecture for a highly scalable distributed cache system. Define essential functional and non-functional requirements like high performance, consistency, and availability. Explore critical design choices, including storage hardware, eviction policies, and the roles of cache clients and servers in the high-level System Design.
In this lesson, we will design a distributed cache. We will also discuss the trade-offs and design choices involved in developing the solution.
Requirements
Let’s start by defining the requirements.
Functional
The system must support the following operations:
Insert data: Users must be able to add an entry to the cache.
Retrieve data: Users must be able to retrieve data associated with a specific key.
Non-functional requirements
We must meet the following non-functional requirements:
High performance: The primary goal is fast data retrieval. Both
insert...