封装工作流或一系列操作
Encapsulating a workflow or a series of actions
我有一个简单的 CRUD 存储库服务。它对远程存储库执行操作。
当creating/updating数据时,我需要编排一系列动作:
- 更新不同的数据库
- 更新 CRM 记录
- 更新另一个数据库
我无法从使其可维护/可理解的角度设计此编排。
假设以上 3 个步骤分别是 other 微服务的职责,这个工作流程会是什么样的模式/架构?
为了编写这些类型的流程,最好将 DFA 编码到 Orchestration 中。
当流程开始时,系统有一个函数来检查成功完成的最后一个状态,并将函数调用交给 DFA 中的下一个状态
我建议使用服务结构中的参与者模型来设计此应用程序。
一般会有两类演员。
作为协调者的Actor
创建一个 Base Orchestrator actor,它将执行常见的功能,例如接收消息、记录日志或您的所有编排都将具有的任何其他方面
应用程序特定的参与者协调器,它将派生自基础协调器,并将具有特定于 business/application 的特定步骤。使用微服务参与者调用一系列步骤来执行任务。
执行单独任务的微服务参与者(DB1 更新、CRM 更新、电子邮件、Azure 存储等)
我们使用相同的模型为我们的物联网应用程序之一做了类似的设计。
我有一个简单的 CRUD 存储库服务。它对远程存储库执行操作。
当creating/updating数据时,我需要编排一系列动作:
- 更新不同的数据库
- 更新 CRM 记录
- 更新另一个数据库
我无法从使其可维护/可理解的角度设计此编排。
假设以上 3 个步骤分别是 other 微服务的职责,这个工作流程会是什么样的模式/架构?
为了编写这些类型的流程,最好将 DFA 编码到 Orchestration 中。
当流程开始时,系统有一个函数来检查成功完成的最后一个状态,并将函数调用交给 DFA 中的下一个状态
我建议使用服务结构中的参与者模型来设计此应用程序。
一般会有两类演员。
作为协调者的Actor
创建一个 Base Orchestrator actor,它将执行常见的功能,例如接收消息、记录日志或您的所有编排都将具有的任何其他方面
应用程序特定的参与者协调器,它将派生自基础协调器,并将具有特定于 business/application 的特定步骤。使用微服务参与者调用一系列步骤来执行任务。
执行单独任务的微服务参与者(DB1 更新、CRM 更新、电子邮件、Azure 存储等)
我们使用相同的模型为我们的物联网应用程序之一做了类似的设计。