> ## 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.

# Basins

> Basins group streams in a location and define the defaults for new streams.

A container for streams, similar to a *bucket* in object storage.

Each basin has a globally unique name and lives in a specific [cell](/platform/cells) within a location. The basin name is reflected in the data plane [endpoint](/api/endpoints):

```
https://{basin}.b.s2.dev
```

## Configuration

Basins carry [configuration](/concepts/configs#basin-config) 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](/concepts/encryption) algorithm for newly created streams. Each stream captures that cipher when it is created.

## Location

Every basin is characterized by a logical **location**, established on basin creation. This is fixed for the lifetime of the basin. The main impact of location is on latency with clients; generally, the closer you are to the location, the better latency you will experience.

A basin location corresponds to a replication environment (e.g., a region within a cloud provider) in which S2 is deployed.

The currently available locations are `aws:us-east-1`, `aws:us-west-2`, and `aws:eu-north-1`.

A default location can be set at the account level. This location will be used for newly created basins that do not specify a location.

A location can also represent a private, [dedicated cell](/platform/cells#tenancy), if so desired. [Contact us](https://s2.dev/contact) if you need this!

## 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](/api/streams/list) supports prefix filtering, and [access tokens](/concepts/access-tokens#resources) 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](/platform/limits) for details.

## See also

<CardGroup cols={2}>
  <Card title="Basin SDK" icon="code" href="/sdk/basin-resources">
    Create, configure, list, and delete basins from SDK clients.
  </Card>

  <Card title="Basin API" icon="globe" href="/api/basins/create">
    Review the basin management endpoints.
  </Card>
</CardGroup>
