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.
Anthropic integration in
@s2-dev/resumable-stream is available, build durable Claude chat sessions with it.s2.dev is more agent-friendly now as all public pages handle
Accept: text/markdown. You can also request Markdown at .md e.g. pricing.md, blog.md.TanStack AI integration in
@s2-dev/resumable-stream is available, build durable chat sessions with it.S2’s
v1alpha gRPC API has retired. It has been fully superseded by the REST-first v1 API.Vercel AI SDK integration in
@s2-dev/resumable-stream is available, build durable chat sessions with it.New Python SDK, powered by the
v1 API.Number of basins per account is now unlimited for all users with a payment method. Previously this was capped at 100.
The basin-level endpoint has been updated to
{basin}.b.s2.dev. To preserve compatibility, {basin}.b.aws.s2.dev will continue to work.Video Conferencing with Durable Streams shows live media, chat, replay, and MP4 export backed by S2 streams.
Terraform Provider for S2 is available on the Terraform Registry.
s2 apply can declaratively create or reconfigure basins and streams from a JSON spec file. Run with --dry-run to preview changes before applying. Use --schema to get the JSON Schema for IDE validation and autocomplete. See CLI: Apply for the full reference.s2-lite now accepts --init-file (or S2LITE_INIT_FILE) to apply a spec at startup. Useful for pre-seeding basins and streams in local dev and CI environments.Studio is now available in the dashboard. A browser-based data plane explorer for reading, appending, and managing streams interactively. Also works with
s2-lite for local development.Parallax explores distributed AI agent coordination with isolated S2 streams for each research cohort.
s2-lite is available. It is an open source, self-hostable server implementation that runs against object storage. You can also run it without pointing at a bucket, as an emulator.S2 endpoints are accessible using IPv6. This could be particularly helpful for avoiding NAT gateway costs.
S2 is SOC 2 Type II compliant.
@s2-dev/streamstore-patterns launched as an add-on package for higher-level TypeScript patterns, including typed append/read sessions, large-message chunking, framing, and deduplication helpers.PrivateLink connection info is now available in the basins tab on the dashboard.s2s is available, and supported for append and read sessions from the TypeScript SDK. Other SDKs will also be migrated away from gRPC to use the REST API and s2s.Long polling reads are supported using the
?wait=<seconds> parameter.Enabled massive scalability for reads and open sourced a key piece of this, Cachey.
Production-ready support for the OpenTelemetry Protocol (OTLP/HTTP).
See usage metrics visualized in the dashboard UI.
Read from streams directly in the dashboard UI.
Stream configuration knob
delete-on-empty to automatically delete a stream if it does not have any records for some period of time.Interactive playground.
Experimental support for the OpenTelemetry Protocol (OTLP/HTTP). Let us know if you would like access.
Support for listing, issuing, revoking granular access tokens.
Added metrics endpoints for usage monitoring to the REST API.
REST API v1 is ready including SSE support. Besides JSON it also supports Protobuf for appending and reading binary data efficiently without the Base64 tax.
Supercharged metadata scalability.
CLI got a new
tail sub-command.Support for reading from
timestamp or a tail_offset, not just sequence numbers. The implicit cap on record timestamp not exceeding arrival time can now be disabled in stream config.Prefix filtering in dashboard on basin or stream names.
first_seq_num as a Read / ReadSession response has been removed: records will be returned from the first record >= the requested starting point.Basins can be configured to
create_stream_on_read automatically when the specified stream does not exist, using the default stream configuration for the basin.Dashboard UI for stream management.
All records now have a monotonic timestamp in milliseconds since Unix epoch. Streams can also be configured to only utilize client-specified timestamps.
Basins can be configured to
create_stream_on_append automatically when the specified stream does not exist, using the default stream configuration for the basin.Dashboard UI for basin management.
ReadSession gRPC and REST API support periodic heartbeats.REST API supports compression using
zstd or gzip, except for streaming reads with SSE.gRPC API supports compression using
zstd or gzip.Python SDK available.
Preview launch with gRPC API, Rust SDK, and CLI.
Prototyped the guts of S2.
S2 hypothesized.

