SkyVault is building a personal cloud storage service (think Dropbox / Google Drive). Users can:
- Upload & download files - drag and drop files up to 5 GB. Large files should use chunked/resumable uploads so a network interruption doesn't require starting over.•Folder structure - organize files in a hierarchical folder tree.•Sync - a desktop client syncs a local folder with the cloud. Changes made on one device should appear on others within 30 seconds.•Sharing - generate shareable links with optional password protection and expiration dates.•Versioning - keep the last 10 versions of every file so users can restore previous versions.•Storage quotas - free users get 5 GB; paid users get 2 TB.
SkyVault targets 1 million users storing an average of 10 GB each (10 PB total).
Design a Dropbox-like cloud storage service for 1 M users with sync, sharing, and versioning. Build this architecture under realistic production constraints, then validate tradeoffs in the design lab simulation.
Request path: The solution keeps ingress, service logic, and stateful dependencies separated so each layer can scale independently.
Reference flow: Web Clients -> DNS -> CDN Edge -> Load Balancer -> API Gateway -> API Service -> Auth Service -> Primary SQL DB