我们是否可以使用类级别的变量将活动结果存储在SWF Flow的工作流工作者中?

问题描述

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

在重播方案中,SWF将为完成的活动重新填充所有Promises。 这是否意味着我们只能存储返回的Promise或直接存储Promises携带的对象

解决方法

是的,绝对如此。这些工作流是有状态的,可以具有存储任何数据的字段。

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

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

免责声明:我是SWF的原始技术主管,也是Temporal的现任主管。