Streams as a cloud storage primitive
The serverless API for unlimited, durable, real-time streams.
S2 is to moving data what object storage is to static data.
Like if Kafka and S3 had a baby. It turns the log into an actual web resource.
Infinite streams
Streams get a first-class treatment, so you can have any number of them, per device, per user, per session, and so on.
Append quickly
Append records atomically to the tail of a stream. Every record is durably ordered on object storage before being acknowledged.
Read from anywhere
Read efficiently from a sequence number, timestamp, or offset from the current tail. Guaranteed to be strongly consistent.
True web resources
Interact with S2 streams using REST APIs.
- Append to and read from streams easily, whether from your backend or client-side code.
- Long-running and real-time tailing reads, via SSE or HTTP/2 sessions.
- SDKs available for TypeScript, Go, Rust, and Python.
Granular access controls
Issue access tokens so that clients can safely and directly access streams.
- Just like streams, no limit on number of access tokens.
- Scope by resources and the operations allowed on them.
- As ephemeral or permanent as you need, with automatic expiration and support for revocation.
Convenient CLI
A command-line interface that makes streaming data as simple as local files.
- Create and manage basins (like a bucket), streams, and access tokens.
- Streaming append and read sessions to easily interact with streams.
- Use it interactively with
s2 -i.
Local-first and multiplayer experiences
Build stateful collaborative experiences reliably with S2. Real-time does not have to mean ephemeral. Try our multiplayer AI chat.
Agent sessions
Event sourcing for agents, with a stream per session. Branching, multi-agent coordination? Now tractable.
Real-time feeds
Broadcast data to unlimited subscribers. Let them consume from where they left off, be it seconds or days ago.
Sandbox execution events
Stream per sandbox instance for observability. Your clients can access historical and real-time events without custom proxy infra.