Skip to content

Tape vs. alternatives

The honest comparisons. Tape isn't the only way to make an agent durable; it's one specific bet on where the runtime should live and what contracts it should enforce. The full parity matrix lives at design / parity; this page is the executive summary.

TL;DR

You should look at If you want
Tape A substrate under ADK, with the agent runtime + the durable execution primitives unified. UNKNOWN as a first-class status. Non-idempotency safety enforced at decoration time.
Temporal A general-purpose durable execution engine, far more mature, with workflow code in your language. You'll build the agent-runtime layer on top.
LangGraph durable An agent-first runtime with checkpointing. Same layer as Tape, different opinions: graph-shaped agents, different idempotency story.
Pydantic AI + DBOS Agent + durable workflow, both from the same vendor. The runtime is more opinionated; the SDK is Python-only.

Tape vs. Temporal

The line: Temporal is the floor; Tape is the ceiling.

  • Temporal solves durable execution as a general primitive. Workflows are written in your language, replayed by a worker, with timers / signals / child workflows / search attributes / a polished web UI.
  • Tape solves agent-runtime concerns on top of durable execution: the third outcome (UNKNOWN), non-idempotency decoration-time safety, budget-as-state, ADK-native resume, the outbox-for-non-idempotent pattern, replay-as-memory for an LLM orchestrator.

You can build Tape on Temporal. The spec lists Temporal/Restate engine behind tape.proto as v2. Today Tape's server is Rust + Postgres; that's not because Temporal couldn't do the job, but because Tape ships with the agent-runtime contracts baked in.

Pick Temporal if:

  • Your problem is more general than "make my ADK agent durable."
  • You want the mature web UI / search attributes / replay-testing tools.
  • You're comfortable building the third-outcome / outbox / budget / policy-version primitives yourself.

Pick Tape if:

  • Your agent uses ADK and you want the journal underneath it, with no framework code to wrap.
  • You want UNKNOWN, non-idempotency safety, and budget-as-state out of the box.
  • You value the smaller surface area and the explicit roadmap over the feature completeness.

The parity matrix §1 has the feature-by-feature audit, including the things Tape doesn't have yet (continue-as-new, child workflows, search attributes, replay-testing tools, sandbox-enforced determinism).

Tape vs. LangGraph durable

The line: same layer, different shape.

  • LangGraph models the agent as a graph with explicit nodes and edges. Checkpointing is per-node. Durability is on graph state.
  • Tape models the agent as an LLM-orchestrated trajectory — there's no graph. The journal is per-decision and per-effect. Durability is on the journal.

The trade-off is observable: LangGraph's graph is great when the structure is fixed up front. Tape's trajectory is right when the model is genuinely choosing the path at each turn. Most "agents that act" — the kind that move money, file tickets, book travel — are trajectory-shaped, not graph-shaped.

Parity matrix §2 covers the specifics.

Tape vs. Pydantic AI + DBOS

The line: same conclusion, different framework.

Pydantic AI + DBOS arrived at the same answer Tape did — agents need durable execution underneath — and built it on top of DBOS as the runtime. The conclusion is the same. The differences are real:

  • Host agent framework: Pydantic AI vs. Google's ADK. If you've picked ADK, Tape is the lower-effort path; if you've picked Pydantic AI, the inverse.
  • Runtime: DBOS (Postgres-backed, Python-first) vs. Tape's Rust server. Different scaling and ops profiles.
  • Multi-language SDKs: Tape ships Python + Go + TypeScript + Java clients today. Pydantic AI is Python-only.

Parity matrix §3 has the side-by-side.

When Tape is the wrong choice

Be honest about this:

  • You're not using ADK. Tape is scoped to ADK. The protocol is language-agnostic, but the host agent framework is ADK.
  • You don't have non-idempotent acts. A pure read-only agent (search, summarisation, retrieval) gets less out of Tape's safety primitives. Worth using for the journal, but not the headline feature.
  • You need multi-region active-active today. That's Spanner territory, and the Spanner backend is experimental.
  • You need a UI to manage runs. Tape has the data (SubscribeEvents, SubscribeRun); it doesn't have the dashboard. Temporal Cloud does.

Next

  • Parity matrix — the feature-by-feature audit.
  • The treatise — the argument for why the runtime should live where Tape puts it.