【问题标题】:What should I consider when using Cadence/Temporal to design a new project?使用 Cadence/Temporal 设计新项目时应该考虑什么?
【发布时间】:2022-06-11 11:07:14
【问题描述】:

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

【问题讨论】:

    标签: cadence-workflow temporal-workflow uber-cadence


    【解决方案1】:

    这就是我尝试称之为“workflow-oriented-architecture”的东西。我建议多考虑以下几个方面:

    • 设计中“流程的哪些部分”的不同选项/备选方案可以建模为工作流。基于此,
      • IDReusePolicy 的工作流 ID 是什么?通常建议使用一些业务 ID 来保证唯一性,这样一个业务实体只执行一个工作流
      • Workflow started怎么用什么信息作为输入参数?
    • 您计划使用哪些节奏/时间概念,以及工作流如何与其他系统交互?
      • Regular/local/long-running activity 用于对外部系统执行操作
      • 持久计时器(使用 workflow.Sleep 或 Workflow.Await)是等待一定时间然后唤醒。与在本地语言中使用 sleep 不同,持久计时器是可靠的,无论主机重启都不会影响触发
      • signal 用于接收来自外部系统的事件
      • query是让外部系统获取一些工作流状态
      • search attributes 可以做两件事:a) 让应用程序使用 ListWorkflowExecutions API 搜索具有某些条件的工作流,并让应用程序通过 DescribeWorkflowExecution API 获得基本状态
    • 您如何处理失败,尤其是使用节奏/时间概念:activityRetryworkflowRetryreset

    【讨论】: