Design Google Drive
Design a cloud storage service that stores files and keeps them in sync across a user's devices.
File storage and sync · Hard
Functional requirements
- Upload and download files
- Sync changes across devices
- Share files with other users
- File version history
Scale & non-functional requirements
- 50M users, 10 GB each
- Large files up to 10 GB
- Strong consistency for file metadata
Hints
- Split files into chunks — why?
- How do devices learn about changes?
- How do you resolve conflicting edits?