SysPadExamples › S3-like object storage

S3-like object storage

An Object API separates Metadata Store lookups from a Placement Service that routes bytes to replicated data nodes (S3 itself stands in for that layer), plus a background compaction job.

Metadata/placement/data-node separation - the same three-layer split S3 itself uses internally.

Client Users Object API API Gateway Metadata Store DynamoDB Placement Service Lambda Data Nodes S3 Compaction / GC Lambda Compaction Schedule EB Scheduler

How it works

Metadata Store
Bucket/object/version bookkeeping only - tiny records, never the bytes. Separating it from the data path is what lets a metadata lookup stay fast while the object itself is potentially gigabytes.
Placement Service
Decides which data nodes hold a given object (consistent hashing, embedded here rather than a separate component) and routes the bytes there. The metadata store never sees the payload.
Compaction / GC
Background reclaim of space from deleted/overwritten versions. Runs on a schedule, not on the request path - a client PUT should never wait on compaction.

Request flows

PUT an object

  1. Client
  2. Object API
  3. Metadata Store
  4. Placement Service
  5. Data Nodes

GET an object

  1. Client
  2. Object API
  3. Metadata Store
  4. Placement Service
  5. Data Nodes

Scheduled compaction

  1. Compaction Schedule
  2. Compaction / GC
  3. Data Nodes

Other interview practice

Open this architecture in SysPad · All examples