What Are We Building?
Cloud file hosting services like Dropbox , Google Drive , and OneDrive let users store files on remote servers and synchronize them across multiple devices seamlessly. Users can upload files, share them with collaborators, and access their data from any device, anywhere.
Dropbox alone has 700+ million registered users and stores over 1.2 exabytes of data. The core challenge isn''t just storage—it''s keeping files in sync across devices in near real-time while minimizing bandwidth usage and handling conflicts gracefully.
Clarifying Requirements
Functional Requirements
• Users can upload, download, update, and delete files from any device.
• Files are automatically synced across all connected devices.
• Users can share files and folders with others (view/edit permissions).
• The system should support offline editing—sync changes when connectivity returns.
• Maintain revision history so users can revert to previous file versions.
Non-Functional Requirements
• High availability: Users depend on file access for daily work.
• Data durability: 99.999999999% (eleven 9s)—losing a user''s files is unforgivable.
• Low-latency sync: Changes should propagate to other devices within seconds.
• Bandwidth efficiency: Only transfer what changed, not the entire file.
• Scalability: Support billions of files across hundreds of millions of users.
Design Constraints
• Mobile clients have limited bandwidth—minimize data transfer.
• Support files up to several GB (video, design files, databases).
• ACID-like guarantees for file metadata (no lost updates or phantom files).
Capacity Estimation
• Assume 500 million total users , 100 million daily active .
• Average user has 200 files , average file size 100 KB .
• Total files: 500M × 200 = 100 billion files .
• Total storage: 100B × 100 KB = ~10…
…
Preview this lesson for free
Sign in to continue reading the full post.