Rivet
Run durable Actors, workflows, sandboxes, and generated apps on one control plane.
Rivet runs agents, workflows, sandboxes, and generated apps as Actors: long-lived processes with durable state, scheduled by one control plane and hosted in node processes you already run. Every Actor type on this site is built on the same primitive.
Actors
The primitive: durable state, queues, events, and scheduling.
Workflows
Multi-step operations that replay instead of starting over.
Sandboxes
A filesystem, shell, and network for code you did not write.
Dynamic Apps
A backend per user, deployed the moment it is generated.
Deploy
Run the control plane and nodes on your own infrastructure, or on Rivet Cloud.
Why Actors
Share capacity across Actors. Many Actors run inside each node process. Add nodes as your workload grows.
Wake on demand. An idle Actor saves its state and unloads from memory. Its next request wakes it. See Benchmarking for measured create, wake, and SQLite latency with the cluster configuration and method used.
Keep state with each Actor. Every Actor gets its own SQLite database and key-value storage. The control plane replicates writes and moves data to object storage.
What the control plane provides
- Fault tolerance by design. A node going down reschedules its Actors elsewhere with their state intact. No replay harness or checkpointing of your own.
- HTTP and WebSocket networking. Address an Actor directly over HTTP or hold a live WebSocket to it. No queue or broker in between.
- End-to-end type safety. Actor definitions generate their own client types, so a signature change breaks the build rather than production.
- React SDK. First-party hooks that subscribe a component to an Actor’s state and keep it live as the Actor updates.
- OpenTelemetry. Traces, metrics, and structured logs emitted in OTel format, into the collector you already run.
- Cron and scheduling. Wake an Actor on a schedule or at a timestamp it sets for itself, without a separate scheduler.
- Actor-to-Actor calls. Actors address each other by key and call across the cluster as if the other one were local.
- Single Rust binary. The control plane ships as one static binary. Run a few identical instances behind a load balancer with an object storage bucket: no database, no CRDs, no operator, no service mesh.
- Deployment choice. Run your own control plane or use Rivet Cloud.
Works with the tools you already use
Typed SDKs for TypeScript, Node.js, Bun, and Rust on the backend, React hooks on the frontend, and an Effect SDK. Start from the quickstarts, or connect your AI client with Rivet MCP and the Rivet skill.
Where to go next
- Guides: worked examples such as an AI agent, a chat room, a multiplayer game, and a per-tenant database.
- Integrations: frameworks and libraries that run on Rivet Actors.
- Deploy: run the control plane on Kubernetes, Docker or a VM, and your nodes anywhere a process can run.
- Registry: every Actor type, first-party and community.