Design a Dropbox-like File Storage and Sync Service
You are asked to design a cross-device file storage and synchronization service at internet scale (hundreds of millions of users). The system must support multi-device sync, offline edits, and reliable sharing—with strong durability and clear consistency guarantees.
Functional Requirements
-
Multi-device sync across desktop and mobile
-
Offline edits with eventual synchronization
-
Conflict detection and resolution
-
Large file support with chunking and delta sync
-
Deduplication and compression
-
Versioning and restore
-
Sharing with ACLs (users, groups, link sharing)
-
Near real-time notifications
-
Quota and billing support
Non-Functional Requirements
-
Scale to hundreds of millions of users and billions of files
-
High durability and availability across regions
-
Clear consistency model for metadata and content
-
Mobile constraints (battery, background limits, metered networks)
-
Encryption options: client-side (E2EE) and server-side
-
Observability: metrics, logs, tracing, integrity checks
-
Disaster recovery with defined RPO/RTO
Deliverables
Provide:
-
High-level architecture: clients and sync engine, metadata service, blob storage/CDN
-
Data model: files, chunks, versions, tombstones, ACLs, journals
-
Read and write flows (including conflict and delta sync)
-
Consistency model and guarantees
-
Strategies for hotspots, backfills, and migrations
-
Notes on mobile constraints, encryption options, quota/billing, observability, and disaster recovery