前言
DDD过程中,领域模型有很多,但是领域事件是绝对的核心,是整个业务流程的骨干,那么这是为什么呢?
事件的特点
事件(Event)有几个特点
- 一旦发生则不可变更
- 在时间轴上,同一时刻不能同时发生多个事件,不同时刻不同的事件可能构成因果关系。
- 反映了系统当中某种变化之后的一种状态
领域事件(Domain Event)是和领域有关的事件,是在业务上真实发生的客观事实,这些事实对系统会产生关键影响,是观察业务系统变化的关键点, 是客观业务变更之后产生的一个客观结果。
那么构成了什么特性呢?
-
领域事件可以看作领域中某种状态真实发生后的变更。这表示上游领域中一定完成了某种操作,下游的领域可以信赖这个事件。因此领域事件可以看作系统中流转的关键节点。
-
既然可以作为关键节点,那么就构成事实上的上下游的中转站,因此系统中的所有领域事件,就构成了多个领域之间进行数据流转的骨架结构。对于上游来说是输出的真实结果,对于下游来说是输入的开始。
-
对于下游来说,可以完全信赖这个领域事件,因此不必对上游的状态产生怀疑,就不会产生回查的操作,从根本上杜绝了系统之间的解耦和。
因此,事件就是绝对的核心,也是“事件风暴”这种领域建模方法的第一步操作,“事件风暴"嘛,不是其他的风暴。
其余的理论就是什么 事件、消息、MQ 在系统架构中的各种作用了。没有必要多说。