我有一个简单的CRUD存储库服务。它针对远程存储库执行操作。
创建/更新数据时,我需要进行一系列操作:
- 更新不同的数据库
- 更新CRM记录
- 更新另一个数据库
我从设计使其可维护/可理解的角度设计这种编排时遇到了麻烦。
假设以上3个步骤是其他微服务的责任,此工作流将是什么样的模式/架构?
我建议使用服务面料中的Actor模型设计此应用程序。
一般将有两类参与者。
-
演员的演员
-
创建一个基本的编排演员,该演员将执行共同的功能,例如收回消息,记录或所有其他编排都具有
的任何其他方面 应用特定的演员编排,该编排将从基本的编排中得出,并针对特定业务/应用程序有特定的步骤。使用微服务参与者来拨打一系列步骤来执行任务。
-
-
将执行单个任务的微服务参与者(DB1更新,CRM更新,电子邮件,Azure存储等(
我们使用相同模型的物联网应用程序进行了类似的设计。
用于编写这类流程,最好将DFA代码纳入编排。
流程启动时,系统具有检查成功完成的最后一个状态,并将功能调用给DFA