System Design Problem

Design a Blob Storage System (like S3)

Commonly Asked By:AWSGoogleMicrosoftBackblaze

  • Upload objects (blobs) of any size (1 byte to 5 TB) via PUT
  • Download objects via GET with support for range requests (partial downloads)
  • Delete objects (immediate metadata removal, lazy storage reclamation)
  • List objects in a bucket with prefix filtering and pagination
  • Multipart upload: upload large objects in parts, assemble on completion
  • Versioning: maintain multiple versions of the same object key
  • Object metadata: custom key-value headers, content-type, content-encoding
  • Access control: per-bucket and per-object ACLs, IAM policies
  • Pre-signed URLs: generate time-limited URLs for upload/download without credentials
  • Lifecycle policies: auto-transition to cheaper storage tiers, auto-delete after N days

S3-style blob storage with Object Service, Placement Service, Metadata Store (KV DB), and replicated Data Nodes. Write path streams data to primary node which replicates, then metadata is written last for strong consistency.

Loading...