Design a file hosting service similar to dropbox
- Functional Requirements
• Users should be able to sign up using their email ID and activate a plan. If they don’t activate, they will get 2 GB of free storage.
• Users should be able to upload files up to 2 GB.
• Dropbox system should support automatic synchronisation across the devices.
• Users should be able to share files and folders with other users.
• The system should support offline editing. Users should be able to add, delete, or modify files offline, and once they come online, changes should be synchronised to the remote server and other online devices.
- Nonfunctional Requirements
• The system should be highly reliable. Any file uploaded should not be lost.
• The system should support real-time collaboration on a file.
• The system should be highly available.
• The total number of registered users is 100 million.
• Total daily active users: 20 million.
• The average size of each file stored is 100 KB.
• The average number of files stored by each user is 20.
• The total number of active connections per minute is 1 million.
- Estimated Usage
• Total number of files: 20 billion
• Total required storage = 2 PB
Seen this question in a real interview before?