flowing retail
1.0.0
此示例应用程序演示了一个简单的订单履行系统,该系统被分解为多个独立的组件(如微服务)。
该存储库包含多种实现替代方案的代码,以允许广大受众理解代码并比较替代方案。下表列出了这些替代方案。
该示例尊重领域驱动设计 (DDD) 、事件驱动架构 (EDA) 和微服务 (μS)的经验教训,旨在让您亲身体验这些主题。
注意:编写代码是为了解释。因此,我更喜欢简化代码或复制粘贴,而不是使用通用解决方案的生产就绪代码。不要将编码风格视为最佳实践!它是专门为易于解释的代码而编写的。
您可以在 O'Reilly 的《实用流程自动化》一书中找到有关这些概念的更多信息。
流动零售模拟了一个非常简单的订单履行系统:
最根本的选择是选择通讯机制:
通信机制之后,下一个选择就是工作流引擎:
和编程语言:
流动零售模拟了一个非常简单的订单履行系统。业务逻辑分为上面所示的服务(显示为上下文映射)。
有些服务本质上是长期运行的- 例如:支付服务要求客户更新过期的信用卡。工作流引擎用于保存和控制这些长时间运行的交互。
请注意,状态机(或本例中的工作流引擎)是一个服务中使用的库。如果不同的服务需要工作流引擎,他们可以运行他们想要的任何引擎。这样,团队就可以自主决定是否要使用框架以及使用哪个框架: