Skip to main content
A container for streams, similar to a bucket in object storage. Each basin has a globally unique name and lives in a specific cell within a region. The basin name is reflected in the data plane endpoint:
https://{basin}.b.aws.s2.dev

Configuration

Basins carry configuration that governs stream auto-creation and defaults for streams in the basin. Enabling create_stream_on_(append|read) lets you skip explicit stream creation — just start operating and the stream will be created automatically with the basin’s default stream config.

Naming

Streams within a basin are addressed as s2://{basin}/{stream}. Stream names can contain / (or any other delimiter) to create logical hierarchies:
s2://my-basin/sessions/user-123/run-456
s2://my-basin/logs/prod/api-server
This is a naming convention only — there is no directory structure. Listing streams supports prefix filtering, and access tokens can be scoped to prefixes as well.

Limits

Each account can have up to 100 basins. Streams within a basin are unlimited. See limits for details.
We plan to make the number of basins unlimited in the coming weeks. This will allow you to model, as an example, basin-per-tenant.

See also