This question evaluates a candidate's competency in designing scalable, durable, and highly available blob/object storage systems, encompassing distributed systems architecture, data modeling for buckets and objects, metadata management, partitioning and routing, fault tolerance strategies, consistency models, large-object transfer patterns, security controls, and operational concerns like monitoring and capacity planning. Commonly asked in the System Design domain to assess practical application of architectural patterns and trade-offs—horizontal scalability, durability versus latency, consistency guarantees, and operational resilience—it primarily tests practical system-design skills grounded in conceptual understanding of distributed systems.
Design a large-scale, highly available blob storage service similar to Amazon S3. The service should allow clients to store, retrieve, and delete arbitrarily sized binary objects (blobs) identified by keys.
Clarify and handle at least the following aspects in your design:
Walk through the main data flows (a typical write/PUT and a typical read/GET), explain key trade-offs in your design, and justify the choices you make.
Login required