buy the book ribbon

附录 A:概要图和表格

本书结尾我们的架构看起来是这样的

diagram showing all components: flask+eventconsumer, service layer, adapters, domain etc

我们的架构组件及其功能 概述了每个模式及其作用。

表 1. 我们的架构组件及其功能
组件 描述

领域

定义业务逻辑。

实体

一种领域对象,其属性可能会随时间变化,但具有可识别的身份。

值对象

一种不可变的领域对象,其属性完全定义了它。它可以与其他相同的对象互换。

聚合

关联对象的集群,我们将其视为数据更改的单元。定义并强制执行一致性边界。

事件

表示发生的事情。

命令

表示系统应执行的作业。

服务层

定义系统应执行的作业并协调不同的组件。

处理器

接收命令或事件并执行需要发生的事情。

工作单元

围绕数据完整性的抽象。每个工作单元代表一个原子更新。使仓库可用。跟踪检索到的聚合上的新事件。

消息总线(内部)

通过将命令和事件路由到适当的处理器来处理它们。

适配器(二级)

从我们的系统到外部世界(I/O)的接口的具体实现。

仓库

围绕持久存储的抽象。每个聚合都有自己的仓库。

事件发布者

将事件推送到外部消息总线上。

入口点(一级适配器)

将外部输入转换为对服务层的调用。

Web

接收 Web 请求并将其转换为命令,传递给内部消息总线。

事件消费者

从外部消息总线读取事件,并将其转换为命令,传递给内部消息总线。

不适用

外部消息总线(消息代理)

不同的服务用于通过事件进行互通的基础设施。