Tidebase Tidebase GitHub Start self-hosting
Docs · Comparisons

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

TidebaseLangGraph checkpointer
Requires a frameworkNo — plain functionsYes — LangGraph graphs
LanguageTypeScript + Python SDKsPython + JS
Resume granularityNamed steps with input hashesGraph super-steps
Replay safety analysisResume contracts: side effects, idempotency keys, failure classificationUp to your node code
Worker leases / zombie fencingBuilt inOut of scope
Approval gatesDurable, exactly-once, webhook channelsinterrupt() within the graph
Product-UI live stateSSE + versioned state streamsRead checkpointed state yourself
DashboardStudio includedLangSmith (separate, hosted)
MaturitySelf-hosted alpha, opt-in authMature 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