Concepts#

Strata is an S3-compatible object gateway. A single strata binary terminates S3 traffic, stores object metadata in a scalable key-value store (Cassandra, ScyllaDB, or TiKV), and persists object bytes as 4 MiB chunks in RADOS, another S3 bucket, or in-process memory. The gateway is stateless — state lives in the metadata store and the data backend, so you scale the gateway horizontally without coordinating replicas yourself.

This section explains the user-facing concepts that show up in the rest of the docs: the S3 surface Strata speaks, how it routes data across multiple clusters, how a cluster is drained and decommissioned, and the background workers that run alongside the gateway. Implementation details live in Architecture; start here for the model operators need to reason about.

Architecture at a glance#

flowchart LR
    Client["S3 client<br/>(aws-cli, mc, SDK)"] -->|HTTPS / SigV4| GW["Strata gateway"]
    GW --> Meta[("Metadata<br/>Cassandra / ScyllaDB / TiKV")]
    GW --> Data[("Data<br/>RADOS / S3 / memory")]
    GW -.-> Workers["Background workers<br/>(GC, lifecycle, rebalance, …)"]
    Workers --> Meta
    Workers --> Data

The S3 client talks to the gateway over HTTP using SigV4. The gateway looks up object metadata, streams object bytes to or from the data backend, and returns S3-shaped responses. Background workers run in the same binary and do not touch the request path — they read the queues and tables the gateway writes and act on them asynchronously.

When you want implementation depth — request flow, storage layout, leader election — jump to Architecture.