我们可以使用 class 级别变量来存储 activity SWF 流的工作流工作者中的结果吗?

can we have class level variable to store activity results in SWF flow's workflow worker?

在决策者的所有 SWF Flow 文档中,都提到决策者应该是确定性的,并且在工作流工作者中不应使用随机变量。但我想知道我们是否可以在存储 activity 结果的工作流工作人员中使用 class 级别变量,以便我们可以在后续活动中使用这些结果..

在回放场景中,SWF 为已完成的活动重新填充所有 Promise。 这是否意味着我们可以只存储返回的 Promise 或直接存储 Promises 携带的对象

是的,绝对是。工作流是有状态的,可以包含存储任何数据的字段。

编写工作流代码时不要考虑重播。如果您的代码是确定性的,那么您只需将其视为普通代码,框架会负责恢复基础设施故障的状态。

顺便说一句。查看 temporal.io,这是一个更加完善的 SWF 开源版本。例如,它允许在必要时与 activity 调用阻塞同步编写工作流代码。

免责声明:我是 SWF 的原始技术负责人和 Temporal 的现任负责人。