Time travel, and the Ark mapping
Time travel means reading and forking history.
getState returns the state and what node runs next. getStateHistory is the full lineage. updateState forks: it writes a new checkpoint with your override, which is how you replay from a modified past.
The build's written mapping is the deliverable: session.json maps to thread, writeback maps to checkpoint, incident-log maps to history. Once you have built it, you can say whether Ark's bespoke files are earning their keep or reinventing the checkpointer.
Try it yourself
What forking actually means
updateState is described as "forking". What actually forks, and how does that differ from getState with a checkpoint_id?
The honest equivalent to Ark's incident log
The mapping is close enough to be useful and wrong enough to be worth naming. Both halves are the answer.
What is the LangGraph equivalent of Ark's incident-log.jsonl, and what's the limit of that analogy?
Add a Postgres checkpointer, then kill and resume mid-run
Put persistence under the module 3 impulse graph and prove it survives a crash.
Tick every step to confirm you did it.
Mid-run kill and resume verified
Confirm the resume behavior after a mid-run process kill.
Killing the process mid-graph and resuming with the same thread_id completes the same thread (not a fresh run), and the checkpoint lineage is annotated with which checkpoint corresponds to a writeback and which to a boot.