A schema change silently kills live threads
Checkpointers store framework snapshots as an opaque blob. Add one field to your state and every checkpoint written before that change deserializes into a shape your code no longer expects — successful writes, failed reads, no migration error.
One team lost ~200 agent runs over three weeks to exactly this. Another watched checkpoint tables reach 40 GB in six weeks with no retention policy. postmortem, three rewrites EZGraph: versioned session document + ordered migrations, applied before your code sees it.