Skip to main content

Buyer guide

LangGraph Production Playbook

Eight production checks for a LangGraph agent leaving the in-memory saver for real users, including how Airbnb pauses a run for days until a person decides.

Reading time
3 min read
Sources
18 cited

Design the state schema, the checkpointer and the interrupts before you write the first node, and pass resume, cancel and replay tests before an agent serves users. This playbook covers each of those, plus durability modes, approval steps before risky actions, validation in code, and tracing.

When you need this

  • An agent built on LangGraph is moving from a prototype on the in-memory saver to real users.
  • A run takes long enough that a deploy, crash, or user cancellation can land in the middle of it.
  • The agent can send messages, spend money, or change records in other systems.

Evaluation criteria

  1. State schema

    What does the graph carry from step to step?

    Look forDefine a TypedDict, dataclass, or Pydantic schema. Add reducers for fields that multiple nodes write, such as message lists. Keep state small and serializable. One developer spent time fixing runtime type errors in loosely typed state. Another found schema growth the main maintenance cost.

  2. Checkpointer

    Where is state saved, and what survives a restart?

    Look forUse Postgres or MongoDB in production, because the in-memory saver loses state on restart. Qodo added Postgres persistence in a few lines. Pin the checkpointer package with LangGraph. Postgres saver 2.0.23 broke reads for one team, and another reported SSL errors under load across versions.

  3. Durability mode

    How much work can a crash lose?

    Look forChoose the durability mode per workload. The sync mode saves each checkpoint before the next step starts. The async mode writes while the next step runs, so a crash can lose the latest state. The exit mode saves only when the run ends. Each checkpoint adds a database write, and long threads pile up rows.

  4. Interrupts

    Which actions must a person approve?

    Look forCall interrupt() before irreversible actions and resume with Command(resume=...). Airbnb pauses trust cases for days until a signal or human decision arrives. One team adds a human checkpoint after each critical step. Another replaced custom checkpointing with LangGraph checkpoints and interrupts.

  5. Side effects and replay

    What happens when a step runs twice?

    Look forReplaying or forking from a checkpoint re-executes every later node, including model calls and API requests. Make side-effecting nodes idempotent, with a key per action, before using time travel in production.

  6. Cancellation and streaming

    What does the user see after canceling or reconnecting?

    Look forOn LangGraph Platform, now called LangSmith Deployment, one team lost everything streamed since the last checkpoint when a user canceled a run. Test cancel and reconnect paths, and decide which streamed output you must save.

  7. Validation loops

    How does the graph enforce rules the prompt cannot?

    Look forCheck outputs in code and route failures back with a conditional edge. Airbnb runs a rules layer with no model in it that approves, denies, or escalates obvious cases before any LLM call. It also lets every agent abstain so uncertain cases go to a person.

  8. Tracing

    How will you see what a failed run held?

    Look forLangSmith traces graphs when LANGSMITH_TRACING is set, and stream modes and checkpoints feed your own tooling. One developer lost a failed production run's state before they could inspect it. Keep checkpoints for failed threads long enough to debug them.

Questions to ask vendors

  1. Which checkpointer and durability mode does each graph use in production, and who owns that database?
  2. Which nodes have side effects, and are they safe to run twice?
  3. Which actions require a human interrupt, and who answers it, within what time?
  4. What happens to a run when it is canceled, or when the service restarts mid-run?
  5. How long are checkpoints for failed threads kept?

Red flags

  • The in-memory saver in production.
  • Payments, emails, or record changes with no interrupt before them.
  • Time travel used in production on nodes with side effects that are not idempotent.
  • Unpinned LangGraph and checkpointer packages.
  • No test of cancel, crash, and resume before launch.

Products in this piece

Sources

Official documentation
7
Public source
11
  1. LangGraph docs: Graph APIOfficial documentationdocs.langchain.com
  2. LangGraph docs: PersistenceOfficial documentationdocs.langchain.com
  3. LangGraph docs: Checkpointers and durability modesOfficial documentationdocs.langchain.com
  4. LangGraph docs: InterruptsOfficial documentationdocs.langchain.com
  5. LangGraph docs: Use time travelOfficial documentationdocs.langchain.com
  6. LangGraph docs: StreamingOfficial documentationdocs.langchain.com
  7. LangGraph docs: StudioOfficial documentationdocs.langchain.com
  8. Sagi Medina (Qodo): Why we chose LangGraph to build our coding agent (Mar 21, 2025)Public sourceqodo.ai
  9. Pedro Rodriguez (Airbnb): How Airbnb builds Trust for Guests and Hosts using AI Agents with LangGraph, Interrupt NYC 2026 (Sep 29, 2026)Public sourceyoutube.com
  10. Brennan Rosales and Pedro Vicente Valdez (BlackRock): How BlackRock Built Production AI Agents with LangGraph, Interrupt 2025 (Jun 12, 2025)Public sourceyoutube.com
  11. Hacker News comment on a human checkpoint after every critical step (Jan 23, 2026)Public sourcenews.ycombinator.com
  12. Hacker News comment on runtime type errors from loosely typed LangGraph state (Jun 18, 2025)Public sourcenews.ycombinator.com
  13. DeadLocker on dev.to: Why I Stopped Using LangGraph (Apr 23, 2026)Public sourcedev.to
  14. Hacker News comment on replacing homegrown checkpointing with LangGraph in Pizza Bot (Sep 16, 2026)Public sourcenews.ycombinator.com
  15. LangGraph issue #5672: run cancellation loses streamed state not yet checkpointed (Jul 25, 2025)Public sourcegithub.com
  16. LangGraph issue #3716: Postgres checkpointer SSL errors across versions (Mar 6, 2025)Public sourcegithub.com
  17. LangGraph issue #5677: AsyncPostgresSaver 2.0.23 fails to read channel values (Jul 27, 2025)Public sourcegithub.com
  18. Hacker News comment on production LangGraph state lost after a mid-run failure (Mar 9, 2026)Public sourcenews.ycombinator.com