Requirements of a Blob Store's Design
Define the functional and non-functional requirements essential for a scalable blob store, emphasizing durability and high availability. Calculate resource estimations for servers, storage, and bandwidth using real-world data modeling.
Requirements
Let’s understand the functional and non-functional requirements:
Functional requirements
Create a
: Users create containers to group blobs (e.g., separating user data or media types). A single user can own multiple containers, each holding many blobs. We assume containers cannot be nested.container A container is like a folder in a file system used to group blobs. Don’t mix up this container with a Docker container.
Put data: Upload blobs to a specific container.
Get data: Access a blob via a system-generated URL.
Delete data: The users should be able to delete a blob. The system should support retention periods before permanent deletion.
List blobs: The user should be able to retrieve a list of blobs within a specific container.
Delete a container: The user should be able to remove a container and ...