Chapter 7 Official Docs Note

第 7 章 Temporal 文档

第 7 章处理代码变更:Workflow 代码必须确定性,部署新代码时要让仍在运行的旧 Event History 继续可 replay。

官方锚点

本章必须带走的事实

Workflow 代码变更要小心

Temporal 官方文档强调,修改现有 Workflow code 需要谨慎,因为 Workflow code 必须保持确定性。

非确定性变更要保护

可能破坏 replay 的代码变更需要通过 Worker Versioning 或 patching APIs 保护。

官方更推荐 Worker Versioning

安全部署文档明确推荐采用 Worker Versioning。

Replay Testing 是关键验证

Replay testing 用旧 Workflow Histories 运行当前代码,检查新代码是否兼容历史。

验证与运行可分两阶段

部署可先运行 replay 验证模式,成功后再让新 Worker 真正处理任务。

旧执行不是历史垃圾

旧 Workflow Execution 仍在生产中运行,新代码必须能解释它们已经记录的历史。

本章对应的执行链

  1. 旧流程已在 Event History 中记录旧顺序。
  2. 新法规要求未来流程走新顺序。
  3. 直接替换 Workflow 分支会让旧历史 replay 到不认识的路径。
  4. Versioning 或 patching 保留旧分支并标记新分支。
  5. Replay testing 用旧历史验证新代码兼容性。
  6. 新执行走新逻辑,旧执行继续沿可解释的历史路径完成。

结尾自检

  1. 为什么 Activity 代码变更和 Workflow 代码变更风险不同?
  2. Replay testing 具体验证的是什么?
  3. 为什么只给版本起名不等于兼容旧历史?
  4. Worker Versioning 和 patching 要保护的核心是什么?