封装工作流或一系列操作

Encapsulating a workflow or a series of actions

我有一个简单的 CRUD 存储库服务。它对远程存储库执行操作。

当creating/updating数据时,我需要编排一系列动作:

  1. 更新不同的数据库
  2. 更新 CRM 记录
  3. 更新另一个数据库

我无法从使其可维护/可理解的角度设计此编排。

假设以上 3 个步骤分别是 other 微服务的职责,这个工作流程会是什么样的模式/架构?

为了编写这些类型的流程,最好将 DFA 编码到 Orchestration 中。

当流程开始时,系统有一个函数来检查成功完成的最后一个状态,并将函数调用交给 DFA 中的下一个状态

我建议使用服务结构中的参与者模型来设计此应用程序。

一般会有两类演员。

  1. 作为协调者的Actor

    • 创建一个 Base Orchestrator actor,它将执行常见的功能,例如接收消息、记录日志或您的所有编排都将具有的任何其他方面

    • 应用程序特定的参与者协调器,它将派生自基础协调器,并将具有特定于 business/application 的特定步骤。使用微服务参与者调用一系列步骤来执行任务。

  2. 执行单独任务的微服务参与者(DB1 更新、CRM 更新、电子邮件、Azure 存储等)

我们使用相同的模型为我们的物联网应用程序之一做了类似的设计。