Interview Questions/System Design/Design a Cloud File Storage Service (Dropbox-like)
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