...

/

Design a Blob Store

Design a Blob Store

Learn to design a blob store.

Overview

Blob store is a storage solution for unstructured data. We can store photos, audio, videos, binary executable codes, or other multimedia items in a blob store. Every type of data is stored as a blobA blob (binary large object) consists of a collection of binary data stored as a single unit.. It follows a flat data organization pattern where there are no hierarchies, that is, directories, sub-directories, and so on.

Mostly, it’s used by applications with a particular business requirement called write once, read many (WORM), which states that data can only be written once and that no one can change it. These blobs can’t be deleted until a specified interval, and they also can’t be modified to protect critical data.

A blob store storing and streaming large unstructured files like audio, video, images, and documents
A blob store storing and streaming large unstructured files like audio, video, images, and documents

Note: It isn’t necessary for all applications to have this WORM requirement. However, we are assuming that the blobs that are written can’t be modified. Instead of modifying, we can upload a new version of a blob if needed.

Requirements

Let’s understand the functional and non-functional requirements below:

Functional requirements

Here are the functional requirements of the design of a blob store:

  • Create a containerA container is like a folder in a file system used to group blobs. Don’t mix up this container with a Docker container.: The users should be able to create containers in order to group blobs. For example, if an application wants to store user-specific data, it should be able to store blobs for different user accounts in different containers. Additionally, a user may want to group video blobs and separate them from a group of image blobs. A single blob store user can create many containers, and each container can have many blobs, as shown in the following illustration. For the sake of simplicity, we assume that we can’t create a container inside a container.
Press + to interact
Multiple containers associated with a single storage account, and multiple blobs inside a single container
Multiple containers associated with a single storage account, and multiple blobs inside a single container
  • Put data: The blob store should allow users to upload blobs to the created
...
Access this course and 1400+ top-rated courses and projects.