Back to Case Studies

Design Dropbox

Overview–

Dropbox is a cloud-based file storage service that allows users to store and share files. It provides a secure and reliable way to store and access files from anywhere on device.


Functional Requirements–

  1. Upload a file.

  2. Download a file.

  3. Automatically sync files across devices.


Out of scope–

  • Roll own blob storage.


Non-Functional Requirements–

  1. Availability >> consistency.

  2. Low latency upload and downloads. (as low as possible)

  3. Support large files as 50gb

    1. Reusable uploads

  4. High data integrity. (sync accuracy)


Core Entities–

  1. File (raw bytes)

  2. File Metadata

  3. Users


API–


  • POST /files -> Presinged Url

body: File & FileMetadata

  • PUT {presigned url}

Body file/chunk

  • PATCH /files -> 200

  • GET /files/:fileId -> File & FileMetadata

  • GET /changes?since={timestamp} -> fileIds[]



High Level Design–





© 2026 Mehraj Hosen. All rights reserved.