Sam Newman在“建立微服务”一书中描述了另一种风险,就是这种编排订单服务- 随着时间的推移,这会发展成吸纳了所有业务逻辑的“上帝服务”,而其他服务则降级为“贫血”服务,或者变得更糟CRUD式的“实体”服务。这是否会在这里发生呢?不,让我们快速再次回顾Martin Fowler的“智能终端”概念。
另一种看待这个问题的方式是这样一个工作流引擎是你的服务的逻辑部分。根据您选择的工具,它可以使用简单的语言客户端(例如使用Java或Go和Zeebe)作为独立的进程运行嵌入到您的应用程序过程(例如,使用Java,Spring和Camunda),也可以由REST API (例如使用Camunda或Netflix指挥)。拥有这种基础设施可以使服务免受实施状态处理本身的负担,以专注于业务逻辑。您可以设计出良好的服务API和真正的智能端点,因为您可以轻松决定让服务长期运行。