shikhar

shikhar

@schmizz.net

Making streams serverless @s2.dev

2.1K followers476 following160 posts

Redis is what you'd turn to when you need lots of streams. Then you have to deal with the memory implications. No more! Bringing you bottomless Redis Streams on S3.

s2.dev@s2.dev

S2 streams are now accessible via Redis/Valkey clients, directly over RESP2/3!

we took gists and made them live!

s2.dev@s2.dev

anything | tsf Launching tail.surf: live gists for terminals, apps, and agents. Pipe any output into tsf and get a stable URL. Follow live, scrub back in time, or replay the full history.

shikhar reposted

You can now use S2 as a backend for Mastra Durable Agents! The @ s2-dev/mastra-pubsub adapter maps each durable topic to an S2 stream, with live delivery, replay after refreshes or process restarts, and distributed leases for coordinating thread ownership across processes.

What if your brain could be a pet? @anthropic.com have shared the benefits of decoupling the brain from its hands. We have also written about using a stream per agent session as a WAL and what that unlocks. If it seems complicated, it is. And durable execution frameworks are far too intrusive.

What if your brain could be a pet? @anthropic.com have shared the benefits of decoupling the brain from its hands. We have also written about using a stream per agent session as a WAL and what that unlocks. If it seems complicated, it is. And durable execution frameworks are far too intrusive.

shikhar reposted

S2 source and sink plugins are now available for Streamling. Read durable S2 streams into Arrow batches, or write Streamling output back to S2. ClickHouse ingestion, Postgres CDC, and a full Postgres → S2 → ClickHouse example: s2.dev/docs/integr...

Also considered EFS, inspired by S3 Files being EFS in a trench coat. Built an async Rust lib that lets you use NFS directly from application code. It performs better than a Linux mount, but writes are an order of magnitude slower than what's achievable by purpose-building. Reads look great though.

shikhar@schmizz.net

thinking about a single-digit ms storage class for @s2.dev it's a plunge from just being s3-based, but gotta do what you gotta do?

Serverless gets clowned on sometimes (ha ha, there are servers) but is ultimately about pricing usage and not having to provision resources you don't use, or think about such things as "clusters". It is genuinely hard for stateful services, but I don't think there is a better DevX.

turns out "stream per session" is not just for agents. it works for browser sessions too. built RePlaya, a self-hosted session replay tool where each visit is just an @s2.dev stream you can play back or tail live. recording = append playback = read live replay = tail github.com/s2-streamsto...

Maybe QUIC is an opening for a gRPC challenger. I would call it Spooky. For spooky action at a distance, the outmoded critique of RPC.

shikhar@schmizz.net

On the retirement of S2's gRPC API, realized how to describe our current API: REST-first. REST undersells, it supports append & read sessions over HTTP/2 similar to gRPC. We'll do HTTP/3 too when the ecosystem is ready.

On the retirement of S2's gRPC API, realized how to describe our current API: REST-first. REST undersells, it supports append & read sessions over HTTP/2 similar to gRPC. We'll do HTTP/3 too when the ecosystem is ready.

maybe it's not too surprising plaintext can be competitive with vector dbs when you consider agents effectively do semantic grep by query expansion

Pipelining is now default in latest s2-lite! 8x increase in throughput and 6x lower latency when running against an S3 standard bucket.

shikhar@schmizz.net

Excited to enable pipelining by default in s2-lite with this upgrade! Expect lower latency and higher throughput. github.com/s2-streamsto...

shikhar reposted

There's two new ways to manage S2 as code! The Terraform provider lets you manage resources with full lifecycle support. Available on the Terraform Registry at s2-streamstore/s2. Or you can use the CLI by `s2 apply` which takes a declarative JSON spec and creates/reconfigures specified resources.

Excited to enable pipelining by default in s2-lite with this upgrade! Expect lower latency and higher throughput. github.com/s2-streamsto...

github.comdefault to pipelining appends and remove `S2LITE_PIPELINE` knob · Issue #48 · s2-streamstore/s2Improves performance a lot against high-latency object storage Depends on slatedb/slatedb#1138
Chris@chris.blue

SlateDB 0.11.0 is out! We had 5 new RFCs, 10 new contributors, and 3 new language bindings. This is a big release with a bunch of improvements and new features. 🧵

shikhar reposted

The s2.dev dashboard now has a Data Plane studio to make it convenient to work with streams. You can: -Do one-shot reads, live tail from any stream, start from an offset, seq no., or timestamp -Append records in multiple modes -Run stream commands -Inspect records with command record aware rendering

shikhar reposted

Curious about the architecture of S2? This is how we cook infinite durable streams for you.