Polign Recall · Comparison

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

RecallTemporal
Storage ownershipYour 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 recordsYes. 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 supersessionBy 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 restartYes. 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 agentsYes. 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 historyAppend-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 pathpip 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.
PricingFree 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

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.