Design an S3-like Object Store
Company: Dropbox
Role: Software Engineer
Category: System Design
Difficulty: medium
Interview Round: Onsite
Design a highly durable object storage service similar to Amazon S3. Users can create buckets and upload, download, list, and delete objects by key. The system should support billions of objects, handle objects of varying sizes, scale horizontally, and remain available despite machine or rack failures.
Discuss:
- core APIs
- separation of metadata and object data
- write path and read path
- replication or erasure coding for durability
- consistency model
- partitioning and load balancing
- large file uploads and range reads
- deletion, versioning, and garbage collection
- authentication, authorization, and encryption
- monitoring, fault tolerance, and disaster recovery
Quick Answer: This question evaluates system design and distributed storage architecture skills, focusing on scalability, durability, metadata versus data separation, replication or erasure coding, consistency models, partitioning and load balancing, large object handling, versioning and garbage collection, and security and operational monitoring.