Skip to main content

Documentation Index

Fetch the complete documentation index at: https://s2.dev/docs/llms.txt

Use this file to discover all available pages before exploring further.

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.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. A basin can also set the encryption algorithm for newly created streams. Each stream captures that cipher when it is created.

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

The number of basins per account is unlimited (for all customers with a payment method; otherwise limited to 100). Streams within a basin are unlimited. See limits for details.

See also

Basin SDK

Create, configure, list, and delete basins from SDK clients.

Basin API

Review the basin management endpoints.