High-Level Design of a Distributed Cache

Lesson 59 of 25610 min readPremium lesson preview
In this lesson3 sections

High-Level Design of a Distributed Cache

Define what the cache promises to its callers before choosing a cluster layout. A successful lookup, a missing key, an expired value, and an unavailable node need distinct meanings.

This initial architecture connects the client library, cache nodes, and backing store. The following lesson adds discovery, replication, and server internals.

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.

Functional and non-functional requirements of a distributed cache
Functional and non-functional requirements of a distributed cache

Non-functional requirements

We must meet the following non-functional requirements:

The rest of this lesson is for Premium members

Premium opens every lesson in this course, along with all questions and solutions on PracHub.