Design Dropbox / File Sync

Hard

Design a cloud file storage and synchronization service like Dropbox or Google Drive. Handle file uploads, chunked storage, real-time sync across devices, conflict resolution, sharing and permissions, and efficient bandwidth usage at the scale of billions of files and hundreds of millions of users.

What to design

  1. What are the core functional requirements for a file sync and storage service?
  2. What are the non-functional requirements? Consider sync latency, storage scale, bandwidth efficiency, and durability.
  3. Design the core APIs — file upload, download, sync, sharing, and version management.
  4. What storage architecture would you use for file chunks and metadata?
  5. How would you design the file chunking and deduplication system to minimize storage and bandwidth?
  6. How would you handle large file uploads reliably over unreliable networks?
  7. How would you design real-time sync so changes propagate to all user devices within seconds?
  8. How would you handle conflict resolution when the same file is edited on two devices simultaneously?
  9. How would you implement file sharing and permissions efficiently?