封装工作流程或一系列操作

时间:2018-02-19 15:13:52

标签: c# .net visual-studio-2017 microservices azure-service-fabric

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

创建/更新数据时,我需要编排一系列操作:

  1. 更新其他数据库
  2. 更新CRM记录
  3. 更新其他数据库
  4. 从使其可维护/可理解的角度来看,我在设计这个编排时遇到了麻烦。

    假设上述3个步骤都是其他微服务的职责,这个工作流程将采用何种模式/架构?

2 个答案:

答案 0 :(得分:1)

我建议在服务结构中使用actor模型设计这个应用程序。

一般会有两类演员。

  1. 充当协调者的演员

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

    • 特定于应用程序的角色协调器,它们将从基本协调器派生,并具有特定于业务/应用程序的特定步骤。使用微服务参与者调用一系列步骤来执行任务。

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

  3. 我们对使用相同型号的IOT应用程序进行了类似的设计。

答案 1 :(得分:-1)

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

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