Design a cloud storage service
Company: Amazon
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design a cloud document storage and sharing service (e.g., like Google Drive). Cover requirements (upload/download, folder hierarchy, metadata/search, sharing/ACLs, versioning, trash/restore), APIs, data model, storage architecture (object store, metadata store, indexing), consistency model, partitioning and replication, upload chunking and resumability, virus scanning and thumbnails, encryption (at rest/in transit), permission checks, rate limiting, monitoring, scalability, availability, and cost considerations. Provide rough capacity estimates and a high-level diagram.
Quick Answer: This interview question evaluates requirements, scale assumptions, API/data design, architecture, trade-offs, failure modes, and rollout in a realistic interview setting. A strong answer for Design a cloud storage service states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.