System design interview questionHard

Design Dropbox

Design a cloud file synchronization service.

1. Problem Statement

Design a file synchronization service like Dropbox. Users install a client on their laptop, and files sync automatically to the cloud and their other devices.

2. Architecture Discussion Map

Use this as one discussion aid, not a single correct answer. Your design should follow from the requirements, scale, and trade-offs you establish.

Rendering architecture diagram...
Mermaid Source (For AI Bots)
graph LR
    A["Design Dropbox"]
    A --> F1["Chunking and deduplication fixed-size or content-defined"]
    A --> F2["Upload path and metadata commit ordering"]
    A --> F3["Metadata model, sharding, and consistency per namespace"]
    A --> F4["Client sync protocol, change notification, and conflicts"]
    A --> F5["Block durability, version retention, and garbage collection"]

3. Key Focus Areas

  • 1
    Chunking and deduplication (fixed-size or content-defined)
  • 2
    Upload path and metadata commit ordering
  • 3
    Metadata model, sharding, and consistency per namespace
  • 4
    Client sync protocol, change notification, and conflicts
  • 5
    Block durability, version retention, and garbage collection

4. What the Interviewer Looks For

The interviewer probes these areas, and the report grades the interview against them.

  • Requirements and estimation
  • Chunking, deduplication, and upload path
  • Metadata model and consistency
  • Sync protocol and conflicts
  • Durability, retention, and garbage collection

5. What Strong Candidates Should Demonstrate

  • Move and store changed file data efficiently, without re-uploading whole files.
  • Keep file metadata consistent per namespace and sync devices from a change journal.
  • Preserve concurrent offline edits, and garbage-collect blocks safely under version retention.

Want interactive feedback?

Practice drawing this system component-by-component on a live whiteboard while the interviewer probes at your target level.

Continue to Dashboard

Core Concepts

System DesignCloud StorageSynchronization

Continue preparing

Build a complete software engineer mock interview plan

Related System Design

Design a Cross-Product Tagging System

Design a shared tagging service that lets users apply tags to entities across multiple Atlassian products, with consistent search and deduplication.

Related System Design

Design a Notification System

Design a scalable notification service that sends emails, SMS, and push notifications to millions of users.