我有一个简单的CRUD存储库服务。它针对远程存储库执行操作。
创建/更新数据时,我需要编排一系列操作:
从使其可维护/可理解的角度来看,我在设计这个编排时遇到了麻烦。
假设上述3个步骤都是其他微服务的职责,这个工作流程将采用何种模式/架构?
答案 0 :(得分:1)
我建议在服务结构中使用actor模型设计这个应用程序。
一般会有两类演员。
充当协调者的演员
创建一个Base Orchestrator actor,它将执行常见功能,例如接收消息,日志记录或您的所有业务流程将具有的任何其他方面
特定于应用程序的角色协调器,它们将从基本协调器派生,并具有特定于业务/应用程序的特定步骤。使用微服务参与者调用一系列步骤来执行任务。
将执行单项任务的微服务参与者(DB1更新,CRM更新,电子邮件,Azure存储等)
我们对使用相同型号的IOT应用程序进行了类似的设计。
答案 1 :(得分:-1)
为了编写这类流,最好将DFA编码到Orchestration中。
当流程开始时,系统有一个功能来检查成功完成的最后一个状态,并将函数调用给DFA中的下一个状态