AdvancedSystem-Design
45 min
Design a Cloud File Storage Service (Dropbox-like)
StorageSecuritySyncCDN
Advertisement
Interview Question
Design a secure cloud file storage and sync service with versioning, sharing, offline sync, and deduplication.
Key Points to Cover
- Data model: files, blocks/chunks, metadata; content-addressed storage
- Sync: delta sync, conflict resolution, resumable uploads
- Dedup/compression, encryption (client/server-side), keys/KMS
- Serving: CDN for downloads, edge acceleration, bandwidth controls
- Sharing/ACLs, audit, ransomware detection/version rollback
Evaluation Rubric
Solid chunked storage and metadata25% weight
Reliable sync and conflict handling25% weight
Encryption/ACLs/audit design25% weight
CDN/edge performance choices25% weight
Hints
- 💡Consider Merkle trees for integrity and sync.
Common Pitfalls to Avoid
- ⚠️**Inadequate Key Management Strategy:** Failing to detail how user master keys are derived, protected, and managed securely, especially concerning client-side encryption and zero-knowledge principles.
- ⚠️**Ignoring Delta Sync and Resumable Uploads:** Designing a sync service that re-uploads entire files on every change, leading to massive bandwidth waste and poor user experience, especially on unreliable networks.
- ⚠️**Inefficient Versioning and Deduplication:** Not leveraging content-addressed storage to implement efficient versioning (e.g., storing full file copies for each version) or missing the opportunity for intrinsic deduplication.
- ⚠️**Scalability Bottlenecks in Metadata:** Overlooking the need for a highly scalable and fault-tolerant metadata database that can handle millions or billions of files and their associated properties.
- ⚠️**Poor Conflict Resolution:** Lacking a clear strategy for handling concurrent modifications to the same file, leading to data loss or user frustration during synchronization.
Potential Follow-up Questions
- ❓How do you detect ransomware activity?
- ❓How do you handle large files?
Advertisement