Chapter 0 Official Docs Note

第 0 章 Temporal 文档

第 0 章只要求玩家先建立 durable execution 的骨架:Workflow Definition 写下流程,Workflow Execution 是一次运行,Worker 从 Task Queue 取任务,Event History 记录可恢复事实。

官方锚点

本章必须带走的事实

Temporal 的目标

Temporal 用来构建可靠应用,让应用在崩溃、网络失败或基础设施故障后仍能从中断点恢复并继续执行。

Workflow Definition 与 Workflow Execution

Workflow Definition 是开发者写下的流程代码;Workflow Execution 是这份定义的一次具体运行实例。

Worker 不是承诺本身

Worker Process 负责轮询任务、执行代码并上报结果,但 Temporal Service 才负责状态转移和任务分发。

Task Queue 是任务交接点

Task Queue 是 Worker 轮询任务的轻量队列,也承担负载分配和任务路由。

Event History 是恢复依据

Event History 是 Workflow Execution 生命周期中已发生事件的持久、有序记录。

恢复不是读进程内存

Worker 崩溃后,Temporal 使用 Event History replay Workflow 代码并恢复执行状态。

本章对应的执行链

  1. 开发者写下 BreadPromiseWorkflow,形成 Workflow Definition。
  2. 启动后产生一条 Workflow Execution,也就是早餐配送流程的运行实例。
  3. Workflow Task 被放到 lumenford.promises 这个 Task Queue。
  4. Worker 轮询并取走任务,执行注册过的 Workflow 代码。
  5. Workflow 决策形成 Commands,Temporal Service 将它们推进为 Events 并写入 Event History。
  6. Worker 消失后,新的 Worker 可以根据 Event History replay 并恢复同一条 Workflow Execution。

结尾自检

  1. 为什么 Workflow Definition 可以运行很多次,而每一次都应看作不同的 Workflow Execution?
  2. 为什么 Worker 进程内存不能作为恢复时的事实来源?
  3. 为什么 Task Queue 是交接和路由层,而不是业务流程本身?
  4. 为什么 Event History 比最后一次外部结果更适合作为恢复依据?