LangGraph’s interrupt() serializes graph state to Redis or Postgres so it can be replayed later. A suspended coroutine already holds all its state in memory — local variables, execution position, pending yields. The call stack is the checkpoint. No serialization required, no external store, no replay logic. The complexity of LangGraph’s persistence layer exists because its execution model lacks suspension. Given a coroutine, the problem it solves does not arise.
(An LLM with patch streaming is a coroutine · Agent frameworks are rational responses to an irrational constraint)