- Storage class β
standardorexpress. This controls append latency, not durability β both classes are regionally durable. See Architecture: Storage classes. - Retention β how long records stick around. Defaults to 7 days. See Retention + Trimming.
- Auto-creation β whether streams are created implicitly on first append or read, useful when you have many short-lived or dynamic streams.

Stream config
For the full set of fields, see the create and reconfigure API docs, or the docs for the SDK you are using. A summary:| Field | Default | Description |
|---|---|---|
storage_class | standard | standard or express. Stream storage class affects initial acknowledgement latency only, not durability. |
retention_policy | 7 days | Age-based (in seconds) or infinite. |
delete_on_empty | Disabled | Auto-delete empty streams after a minimum age. |
timestamping.mode | client-prefer | How timestamps should be assigned: by S2 on arrival; from the client, if provided, if client-prefer; or always from the client, with client-require. |
timestamping.uncapped | false | Allow client timestamps to exceed arrival time into S2. |
Delete on empty
When enabled, a stream is automatically deleted once all its records have been trimmed and the stream is empty. Themin_age_secs field requires the stream to have existed for at least that long before it can be auto-deleted.
Useful for ephemeral streams β e.g. one stream per job run where the data is consumed and no longer needed.
Basin config
| Field | Default | Description |
|---|---|---|
create_stream_on_append | false | Auto-create streams on first append. |
create_stream_on_read | false | Auto-create streams on first read. |
default_stream_config | See above | Config applied to auto-created streams. |

