状态的两种承载形态与迁移 状态可以留在会话历史里,由模型自己归纳;也可以外置为任务对象,由程序维护。前者换会话即丢,后者换执行者不丢,但需要额外的读写与同步成本。 WHERE THE STATE LIVES FORM A · IN SESSION 状态留在会话历史里 阶段、待办、已改文件都靠消息承载 谁执行,谁就拥有这份状态 换会话 → 状态断;压缩 → 状态可能被摘掉 FORM B · IN TASK OBJECT 状态外置为任务对象 阶段、待办、授权、产物登记在独立对象里 执行者只是可替换的资源 换执行者 → 重新绑定;崩溃 → 重新拉起 迁移 MIGRATION COST 迁移要做三件事:把会话里已被归纳的结论抽出来、给它定字段、让执行者每轮从对象读而不是从历史推。 THE PARTIAL MIGRATION THAT FAILS 只迁移一半比不迁移更糟 状态写进了对象,但执行者仍从会话历史推断当前阶段——两份状态会分叉,且没人知道哪份是真的。