Tidebase vs LangGraph checkpointers
The short answer: LangGraph checkpointers persist the state of a LangGraph graph; Tidebase checkpoints any code, in any framework or none. If you’re all-in on LangGraph, its Postgres checkpointer is the native choice. If your agent is plain TypeScript — or a mix of frameworks — Tidebase gives you checkpoint/resume without adopting a graph abstraction.
Tidebase is an open-source checkpoint layer for AI agents: wrap your steps, and failed runs resume from the last safe point — in your own Postgres, without moving execution into a new runtime.
The structural difference
LangGraph checkpointers are a persistence backend for LangGraph. You model your agent as a graph of nodes; the checkpointer (e.g. Postgres-backed) saves channel state at each super-step, enabling resume, time travel, and human-in-the-loop interrupts — within the graph runtime.
Tidebase is framework-agnostic. You keep ordinary async functions and wrap meaningful units in run.step(). No graph model, no framework migration. It also covers operational ground a graph checkpointer doesn’t try to: run/step leases (two workers can’t grab the same run; zombie workers are fenced), resume contracts with failure classification (manual_review for unkeyed side effects), durable approval gates deliverable over webhooks, parent/child run trees, a live-state SSE API for your product UI, an append-only event log, a usage/cost ledger, and a Studio dashboard.
Side by side
| Tidebase | LangGraph checkpointer | |
|---|---|---|
| Requires a framework | No — plain functions | Yes — LangGraph graphs |
| Language | TypeScript + Python SDKs | Python + JS |
| Resume granularity | Named steps with input hashes | Graph super-steps |
| Replay safety analysis | Resume contracts: side effects, idempotency keys, failure classification | Up to your node code |
| Worker leases / zombie fencing | Built in | Out of scope |
| Approval gates | Durable, exactly-once, webhook channels | interrupt() within the graph |
| Product-UI live state | SSE + versioned state streams | Read checkpointed state yourself |
| Dashboard | Studio included | LangSmith (separate, hosted) |
| Maturity | Self-hosted alpha, opt-in auth | Mature within LangChain ecosystem |
Choose LangGraph checkpointers if
- Your agent is already a LangGraph graph — native persistence beats an external layer.
Choose Tidebase if
- Your agent is plain code (or spans frameworks) and you don’t want to restructure it into a graph to get checkpointing.
- You need the operational layer around the checkpoint: leases, replay classification, gates your product UI can render, run trees, cost tracking.
Repo: https://github.com/BlueprintLabIO/tidebase · See also: The replay contract