Show HN: SQLite for Rivet Actors – one database per agent, tenant, or document
Source: Hacker News
Overview
Hey HN! We posted Rivet Actors here previously [1] as an open‑source alternative to Cloudflare Durable Objects.
Today we’ve released SQLite storage for actors (Apache 2.0).
Per‑actor SQLite databases
Every actor gets its own SQLite database, so you can have millions of independent databases—one for each agent, tenant, user, or document.
Useful for
- AI agents – per‑agent DB for message history, state, embeddings
- Multi‑tenant SaaS – real per‑tenant isolation, no RLS hacks
- Collaborative documents – each document gets its own database with built‑in multiplayer
- Per‑user databases – isolated, scales horizontally, runs at the edge
The idea of splitting data per entity isn’t new: Cassandra and DynamoDB use partition keys to scale horizontally, but you’re stuck with rigid schemas (“single‑table design” [3]), limited queries, and painful migrations. SQLite per entity gives you the same scalability without those trade‑offs [2].
How this compares
- Cloudflare Durable Objects & Agents – most similar to Rivet Actors with colocated SQLite and compute, but closed‑source and vendor‑locked.
- Turso Cloud – great platform, but closed‑source + different use case. Clients query over the network, so reads are slow or stale. Rivet’s single‑writer actor model keeps reads local and fresh.
- D1, Turso (the DB), Litestream, rqlite, LiteFS – excellent tools for running a single SQLite database with replication. Rivet is for running lots of isolated databases.
Under the hood
SQLite runs in‑process with each actor. A custom VFS persists writes to HA storage (FoundationDB or Postgres).
Rivet Actors also provide:
- Real‑time (WebSockets)
- React integration (
useActor) - Horizontal scalability
- Actors that sleep when idle
Links
- GitHub:
- Docs:
- References:
- [1]
- [2]
- [3]