Search⌘ K

High-Level Design of a Distributed Cache

Learn how we can develop a high-level design of a distributed cache.

In this lesson, we’ll learn to design a distributed cache. We’ll also discuss the trade-offs and design choices that can occur while we progress in our journey towards developing a solution.

Requirements

Let us start by understanding the requirements of our solution.

Functional

The following are the functional requirements:

  • Insert data: The user of a distributed cache system must be able to insert an entry to the cache.

  • Retrieve data: The user should be able to retrieve data corresponding to a specific key.

Non-functional requirements

We’ll consider the following non-functional requirements:

  • High performance: The primary reason for the cache is to enable fast retrieval of data. Therefore, both the insert and retrieve operations must be fast.

  • Scalability: The cache system should scale horizontally with no bottlenecks on an increasing number of requests.

  • High availability ...