Agentic Workflow Versioning: LangGraph, Temporal, and Inngest in Production
Versioning agent workflows is the unsexy reliability primitive that decides whether your agent survives its second deploy. A 2026 deep dive.
The Problem Nobody Wants to Solve
Your agent workflow is running. A user kicks off a 4-hour task. Halfway through, you deploy a new version of the workflow. Now what? The in-flight execution was built on the old graph. The new code does not match. If you do nothing, the in-flight task either dies or — worse — silently runs against the old graph forever.
This is workflow versioning. It is unglamorous. It is also the difference between an agent that survives daily deploys and one that needs a maintenance window.
What "Versioning a Workflow" Actually Means
flowchart LR
V1[Workflow v1] --> Inflight[In-flight Execution v1]
V2[Workflow v2 deployed]
Inflight -->|continues on v1 code| Done[Completes]
NewStart[New Execution] --> V2
V2 --> NewDone[Completes on v2]
The contract is simple in principle: a long-running execution should pin to the version of the workflow it started under. New executions start under the latest version. Three platforms have first-class support for this in 2026.
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
Temporal
Temporal is the most mature of the three. It pioneered the "deterministic workflow" pattern where the workflow code is replayable: a worker that crashes can pick up exactly where another worker left off because the inputs to every step are recorded.
Versioning in Temporal is explicit. You call Workflow.GetVersion(changeId, minSupported, maxSupported) at any point where the workflow's behavior would change. Old executions return their pinned version; new ones get the latest. This lets you ship arbitrary changes without breaking in-flight runs.
- Strength: industrial-grade durability and versioning, used by Uber, Coinbase, Stripe
- Cost: heavyweight; you run the cluster
- Best for: long-running, transaction-critical agent workflows (payments, KYC, document processing)
LangGraph
LangGraph is purpose-built for LLM workflows. The graph is the abstraction; nodes are tools or LLM calls, edges are routing decisions. LangGraph 1.x added persistent state and replay; LangGraph Cloud added managed deployment with version pinning.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
The versioning model is simpler than Temporal's — each workflow has a hash, and executions reference the hash. Hot deploys are supported via blue/green hash transitions.
- Strength: matches LLM developer mental model, fast iteration
- Cost: lower operational burden, especially on LangGraph Cloud
- Best for: agent workflows where iteration speed matters more than absolute durability
Inngest
Inngest is the lightest-weight option. It started as event-driven functions and added agent-style workflows in 2025. Versioning is per-function: deploys create new function versions; in-flight invocations stay on their version.
- Strength: deploy-friendly, zero-cluster managed model
- Cost: pay-per-step pricing
- Best for: small to mid-scale agent fleets, event-driven workflows
A Concrete Versioning Scenario
sequenceDiagram
participant Dev as Developer
participant Plat as Platform
participant W1 as In-flight workflow v1
participant W2 as New workflow v2
Dev->>Plat: deploy v2
Plat->>W1: continue on pinned v1 code
Dev->>Plat: start new execution
Plat->>W2: run on v2
W1->>Plat: complete
Plat->>Plat: retire v1 after drain window
The drain window is the part most teams underspecify. It is the time you keep v1 code running so v1 executions can finish. For a 4-hour agent task, a 24-hour drain window is conservative. For a 30-second task, 5 minutes is fine.
Anti-Patterns
- Hot-patching the workflow file in place: turns versioning into a coin flip
- Mixing breaking schema changes with workflow code changes in the same deploy: in-flight executions can deserialize state with the wrong shape
- Skipping version checkpoints in long workflows: a sneaky change a year later can subtly corrupt every in-flight execution
Decision Guide
flowchart TD
Q1{Multi-day workflows<br/>or financial transactions?}
Q1 -->|Yes| Temp[Temporal]
Q1 -->|No| Q2{LLM-first<br/>iteration speed top priority?}
Q2 -->|Yes| LG[LangGraph]
Q2 -->|No| Q3{Event-driven,<br/>small/mid scale?}
Q3 -->|Yes| Ing[Inngest]
Sources
- Temporal versioning docs — https://docs.temporal.io/dev-guide/typescript/versioning
- LangGraph documentation — https://langchain-ai.github.io/langgraph/
- Inngest workflow versioning — https://www.inngest.com/docs
- "Durable execution patterns" 2025 — https://temporal.io/blog
- LangGraph 1.0 release notes — https://blog.langchain.dev/langgraph
Try CallSphere AI Voice Agents
See how AI voice agents work for your industry. Live demo available -- no signup required.