Workflow 协议 - 管理 API
Workflow 构建块内部的底层描述。
本文档从底层详细说明 Dapr 工作流协议与运行时约定。面向的读者是构建工作流 Worker 的 SDK 作者以及演进 Dapr 边车工作流引擎的运行时维护者。
Dapr 工作流采用"边车即调度器"模式:Dapr 运行时(边车)作为工作流引擎,应用 SDK 作为工作流 Worker。所有控制与执行流量均通过 gRPC 传输。
协议界面分为两类:
TaskHubSidecarService)。核心组件
工作流引擎(Dapr 边车)
管理工作流状态转换、历史持久化、编排与活动任务的调度,以及可靠交付语义。默认情况下,利用 Dapr Actors 作为后端,实现可持久化、分区的执行。
工作流 Worker(应用 SDK)
连接到边车,轮询编排与活动工作项,执行用户定义的逻辑,并将结果、失败与心跳返回给引擎。编排逻辑必须是确定性的;活动逻辑无需是确定性的。
编排
定义工作流的确定性协调器。引擎通过重放历史来驱动编排,重建状态并调度出站任务(活动、子编排、定时器、外部事件)。
活动
原子工作单元。活动执行保证至少一次,并将结果或失败报告回引擎。建议幂等,并在上下文中提供任务执行标识符以辅助实现幂等。
状态存储与后端
工作流历史与状态持久化保存。引擎通常在所选持久化层上实现任务中心模式,并使用 Dapr Actors 作为默认的可靠性底层。
Dapr 工作流基于持久任务框架(DTFx)执行语义:
编排器从其事件历史重放,以重建确定性状态。所有非确定性操作(时间、随机值、I/O)必须由引擎中介(例如通过定时器、活动调用、外部事件)。
除引擎中介效果外,编排器代码必须无副作用。控制流在重放期间必须可复现。
活动可能被多次传递。引擎确保工作流状态提交是幂等的,并恰好一次应用。
边车拥有调度权,并在向 Worker 分发工作前持久化所有历史/事件。从引擎视角看,Worker 是无状态执行器。
注意:关于确切的 RPC 形状、错误码和语义,参见 管理 API 规范。
注意:参见定义了
TaskHubSidecarService约定、负载架构与排序规则的 执行 API 规范。
StartWorkflow。ExecutionStarted)并实例化实例。TaskHubSidecarService Worker 协议、工作项约定、结果/失败报告与排序。Workflow 构建块内部的底层描述。
Workflow 构建块内部机制的低级描述。
Workflow 构建块内部机制的底层描述。
Workflow 构建块内部机制的低层级描述。
Workflow 构建块内部机制的低层描述。
工作流构建块内部实现的底层描述。