Recall vs Temporal for agent state
Temporal gives a workflow durable execution: every step is an event, a worker replays the history to rebuild state, and activities retry. Recall gives an agent durable memory and state: typed records of what it knows, where it is and which tool calls were in flight. They can be used together; the question is which one should hold the conversation.
Recall and Temporal
| Recall | Temporal | |
|---|---|---|
| Storage ownership | Your own database: polign_db in your S3, GCS or Azure bucket, or PostgreSQL, MongoDB or Qdrant you already run. No vendor control plane. | Temporal's own persistence: Temporal Cloud, or a self-hosted server on Cassandra, PostgreSQL or MySQL (SQLite for development). Your agent's state is the workflow's event history. |
| Typed records | Yes. Each fact is a subject, a predicate from a registry (or coined on first use) and a typed value; text is extracted into those by a model you name. | Workflow inputs, signals, activity results and local state are typed in your language; the history is an append-only log of events, not facts. |
| Corrections and supersession | By rule at read time: a single-valued predicate's newer statement replaces the older one; a text statement can name what it makes untrue. Reads carry what was replaced. | Not a concept. A workflow's state is whatever your code holds; correcting a fact is a signal or an update you design. |
| Resume after restart | Yes. Working state, turns, outputs, pointers and in-flight tool calls per agent id, fenced by a lease; a new process resumes from a briefing. | Yes, by replay: a worker rebuilds workflow state by re-executing deterministic code against the event history. Activities may run more than once, so side effects must be idempotent; heartbeat details survive to the next attempt. |
| Shared across agents | Yes. One database, keys per namespace through recall serve, Kubernetes workload identity, packages for LangGraph, OpenAI Agents SDK, Pydantic AI, LiveKit, Vapi and MCP hosts. | Within Temporal, yes: queries, signals and child workflows. Memory other agents read is outside its scope. |
| Audit and history | Append-only records with time and source; history, as_of reads, diff, and audit bundles replayable offline. | The event history is a complete, append-only record of every decision the workflow took, with timestamps, until it is retained out. |
| Self-hosted path | pip install polign-recall runs a local database; recall serve or the Helm chart for a shared one. Apache-2.0. | Temporal server (MIT) plus a database and, recommended, Elasticsearch for visibility; the Python SDK temporalio 1.35 includes an OpenAI Agents SDK integration. |
| Pricing | Free to self-host, no limits. Paid: design partner seat (60 days free, then $12k for 12 months) or a Production Agreement at $24k a year, flat. | Temporal Cloud: $50 per million Actions pay as you go, down to $25 with volume, plus storage at $0.042 per GB-hour active; support from $500 a month. Self-hosting is free. |
When to pick the other tool
Pick Temporal when the agent's run is a long business process with retries, timers, human approvals and compensation, and you want a proven engine to own that control flow. Its guarantees are stronger than anything a memory layer offers: exactly-once observation of activity completion, versioned workflow code, a full event history. What it does not want to hold is the conversation itself: the history is limited to 51,200 events or 50 MB, with a warning at 10,240, and a chat agent making a hundred tool calls a turn reaches that in a few dozen turns (temporalio/sdk-python#1890). Keep the conversation and the agent's facts in Recall, start one workflow per turn or use continue-as-new, and pass the session id as the workflow input. Determinism is the other cost: workflow code cannot call a model or read a clock directly, so every agent step is an activity.
Where to go next
- RecallSession for the OpenAI Agents SDK, which Temporal's Python SDK integrates
- Resume an agent after a crash or pod restart
- An audit trail of what the agent knew and did
Sources, read on November 3, 2026: event history, Temporal Cloud limits, continue-as-new, determinism, activities, pricing, persistence; temporalio 1.35.0.
Recall is typed, durable memory and state for AI agents. It stores corrections, decisions and task state as append-only records in your own object store (S3 or GCS), so an agent can be corrected without retraining and resumed after a crash, restart or pod replacement without snapshotting the process.
Try it
One pip install brings the client, the recall binary and the database. The snippet on
this page runs as written.