System Design AI
All designs

Classic designProduct & backendintermediate

7. Design a File Storage Service

Upload and share large files with resumable transfer, versions and safe metadata changes.

The brief

Design a file storage and sharing service for web and desktop clients. Separate file bytes from metadata and permissions, and explain resumable uploads, downloads and version creation. Define what a user sees after an interrupted upload or conflicting edits from two devices.

  • Support 1 million users uploading 100 TB/day in total; files range from 1 KB to 10 GB.
  • Networks can disconnect mid-upload and desktop devices may edit offline.
  • Users can share a folder with named collaborators and revoke access later.

Constraints

Supported file size≥ 10 GB
Declare the maximum supported single-file size.
Atomic file visibility
Do not publish metadata pointing to an incomplete or missing file version.
Revocation contract
Define authorization for bytes and metadata, including the lifetime of already-issued download links.

What to cover

  1. 01

    Metadata and versions

    Define ownership, folders, permissions, version identity and conflict behavior.

  2. 02

    Transfer protocol

    Describe multipart upload, retry verification, completion and download access.

  3. 03

    Storage and cleanup

    Estimate daily and retained byte volume; handle unreferenced chunks and deleted versions.

  4. 04

    Failure walkthrough

    Trace a dropped upload, simultaneous edits and access revocation; compare two conflict policies.

Worked designs

Explore the architecture and decisions, then build on an example with Coach.

Review rubric

AI feedback uses these criteria. Scores are practice feedback.

Version correctness

Publication and conflicting edits preserve an explicit version history.

30points

Resumable transfers

Retry identity, integrity and completion are coherent.

25points

Access lifecycle

Metadata and byte access honor the sharing contract.

25points

Capacity and recovery

Retention, cleanup and interrupted work are accounted for.

20points

Discussion

Share an approach, ask a question, or tag @Coach.

Share your interview experience

Published under your alias as a community report. Leave out interviewer names and confidential material.

Loading discussion…