AI & DevelopmentOpen SourceDeveloper Tools

Rivet: Open-Source Actor Orchestrator Beats Durable Objects

Durable state is the hidden tax on every AI agent project. You build the smart part, then spend two sprints figuring out where the conversation lives when the process crashes, how to avoid blocking on a database write mid-tool-call, and why Cloudflare Durable Objects keep evicting your sessions at the worst possible moment. Rivet is the open-source answer: an actor orchestrator that gives each agent session a persistent, lightweight process — 72 KB of RAM, a built-in SQLite database, WebSockets, and a 4.99ms p99 cold start — without locking you to any cloud vendor.

Actors, Not Functions

Rivet’s core primitive is the Actor: a long-lived process that owns a single agent session. Unlike stateless functions that die after each invocation, an Actor persists. It holds in-memory state for the duration of a turn, checkpoints that state to a per-actor SQLite database (backed by S3) when the turn ends, and hibernates when idle. When the next request arrives, it wakes in 4.37ms with every variable exactly where you left it.

This model fits AI agents cleanly. One conversation, one Actor. The Actor holds the message history, tool call results, and any workspace artifacts. If the host crashes, the Actor restores from S3. If a thousand agents are idle, they consume zero RAM — Rivet evicts sleeping Actors from memory without destroying their state.

The Numbers Against Durable Objects

Rivet publishes a head-to-head benchmark repo against Cloudflare Durable Objects. The results are blunt:

  • 39x faster Actor creation
  • 28x faster SQLite writes
  • 13x faster requests from your backend

The gap comes from architecture. Cloudflare runs each Durable Object inside a V8 isolate; creating one means spinning up that isolate. Rivet Actors share a Node.js or Bun process — no VM boot, no container pull. The control plane is a single Rust binary; scale it by adding instances and pointing them at the same S3 bucket. No external database, no message bus to provision first.

What Rivet Removes (That Durable Objects Kept)

Cloudflare’s constraints aren’t hypothetical gotchas — they’re the reason teams leave. The 10 GB SQLite cap hits coding agents storing large file trees. The 128 MB memory limit kills anything holding a large model context. Random eviction means you can’t trust in-memory state between requests. Self-hosting is off the table entirely.

Rivet removes all three. Storage is unbounded — SQLite files live in S3. Memory limits are set by your own infrastructure. Eviction is predictable: actors hibernate on a schedule you control. And the whole thing is Apache 2.0 on GitHub, deployable on AWS, GCP, Azure, MinIO, Cloudflare R2, or bare metal.

What Shipped This Week

The HN Launch post landed alongside two notable releases:

Rust SDK GA (Nov 6): The Rust SDK for Rivet Actors is now generally available. Unlike Cloudflare Durable Objects, which compile your logic to WebAssembly running on a JS engine, Rivet’s Rust actors run at native speed. End-to-end type safety, OpenTelemetry built-in, and the ability to mix TypeScript and Rust actors in one project.

Actor Forking (Nov 11): Any actor can be forked in 20ms using copy-on-write semantics. The fork starts with the parent’s exact in-memory state and SQLite database. Writes to the fork never touch the original. The practical use case: fork an agent mid-session, test a different tool strategy against the same context, compare outcomes. No other orchestrator offers this today.

Start in One Command

docker run -p 6420:6420 rivetdev/engine

That starts a local Rivet instance with a dashboard at localhost:6420/ui. For production, Rivet supports Kubernetes, Docker Compose, Railway, AWS ECS, and VM/bare metal. BYOC deployments run inside your own AWS, GCP, or Azure account — your data never touches Rivet’s cloud unless you opt into the managed tier.

Production Signal

Amp, an AI coding assistant, was building on Cloudflare Durable Objects and couldn’t ship — platform limitations, unresponsive support. They migrated to Rivet Actors over a weekend and now run on-prem. That’s the most credible early signal for a tool that launched this month.

The Honest Tradeoff

Cloudflare Durable Objects run in 200+ PoPs worldwide. Rivet does not — a deployment is single-region unless you manage multi-region yourself. For latency-sensitive global applications, that gap is real. For most agent workloads — coding assistants, document pipelines, internal tooling — round-trip latency to a single region is irrelevant compared to LLM response time.

Rivet is also newer. The HN thread had the typical split: half enthusiastic, half asking how it differs from Temporal. If you need Cloudflare-scale production battle-testing, give it six months. If you need a self-hosted actor store for agents today, the one-liner above is a reasonable afternoon experiment. The Apache 2.0 license means no licensing surprises when you scale.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *