Learning on Web Dev Open is free for all.

Interview Prep · System DesignDesign an object storage service
← System Design

Design an object storage service

Hard50 minFree, no account

Eleven nines of durability, and the arithmetic showing replication alone cannot pay for it.


The question

Design an S3-like service: PUT, GET and DELETE an object by key within a bucket.

Objects range from a kilobyte to five terabytes.

Functional
  • PUT, GET, DELETE, and list the keys in a bucket by prefix.
  • Multipart upload for large objects.
  • Versioning.
Non-functional
  • Durability of 99.999999999%, eleven nines.
  • Exabytes of data, trillions of objects.
  • Read-after-write consistency for a new object.
50:00Commit to an answer before you open the solution. Reading it first teaches you to recognise good answers, which is not the skill being tested.

Stuck?

0 of 3 hints taken

The worked solution

written by a person · not a grade

Score yourself

0 of 5 marked
  • Separated metadata from data with different scaling stories20
  • Chose erasure coding with the overhead arithmetic and spread failure domains30
  • Range-partitioned metadata for prefix listing, and named the hot-prefix cost20
  • Read-after-write from commit ordering; multipart made resumable20
  • Raised scrubbing, tombstones or small-object packing10

We run no AI here and nothing on this page grades you. The score is yours, and the useful number is the one you get on the same problem a month from now, cold.

kept in this browser only