当我使用Cadence/Temporal来设计一个新项目时,我应该考虑什么?



我是Cadence/Temporal的新手,想知道设计审查过程是什么样的。我的团队已经准备好进行正式的设计审查,但想知道是否有一个模板可以捕获节奏/时间的特定信息?

这是我试图称之为">面向工作流的架构"。我建议从以下几个方面考虑:

  • 设计中"流程的哪一部分"可以建模为工作流的不同选项/替代方案。基于此,
    • IDReusePolicy使用的工作流id是什么?通常建议使用一些业务ID来保证唯一性,以便一个业务实体只执行一个工作流
    • 工作流是如何以什么信息作为输入参数启动的?
  • 你计划使用什么节奏/时间概念,以及工作流如何与其他系统交互?
    • 常规/本地/长时间运行的活动用于对外部系统进行操作
    • 持久定时器(使用工作流。Sleep或Workflow.Await)是等待一定的时间然后唤醒。与在本地语言中使用sleep不同,持久计时器是可靠的,无论主机重启什么都不会影响触发
    • 信号接收来自外部系统的事件
    • 查询是让外部系统获取一些工作流状态
    • 搜索属性可以做两件事:a)允许应用程序使用ListWorkflowExecutions API搜索具有某些条件的工作流,并允许应用程序通过descripbeworkflowexecution API
    • 获取基本状态
  • 如何处理失败,特别是使用节奏/时间概念:activityRetry, workflowRetry, reset

相关内容

最新更新