Distributed File Storage — System Design Interview Practice
Design a distributed file storage system like Google Drive or Dropbox for storing and sharing files. Work through the requirements, architecture trade-offs, and an interactive design review.
Requirements and concepts to consider
- Upload, download, and store filesRequirement
- File sharing with permissionsRequirement
- File versioning and historyRequirement
- Synchronization across devicesRequirement
- Search files by name and contentRequirement
- Handle large files (up to 1GB)Requirement
- Support billions of filesRequirement
- Offline access capabilitiesRequirement
- file storageConcept to explore
- synchronizationConcept to explore
- versioningConcept to explore
- cdnConcept to explore
- deduplicationConcept to explore