EDA事件驱动架构 领域事件 Event Sourcing

摘自http://www.jdon.com/eda.html

EDA(Event-driven architecture)是以事件为核心,与SOA 以服务为核心有本质区别,是状态模式 的延伸到架构上,事件是触发状态变化的根源,事件是介于业务和技术两者之间的概念,用户界面是事件主要发生来源,事件也可以来源其他系统或模块,通过事件可以实现系统或组件之间松耦合。EDA可以实现SOA 服务之间的调用,事件也可以用于DDD 领域模型对技术组件的触发,成为Domain Events领域事件。

  事件既是技术架构概念,也是业务概念,通过引入事件,类似服务概念一样,跨越业务和技术鸿沟,同时又能表达面向函数编程 思维。在业务上将事件和领域驱动设计DDD 结合在一起,可以形成统一语言DSL,Jdon统一语言如下图:

event

  该图表达了用户操作者和被操作者事物之间的本质关系,以用户和购物车为案例,从购物车这个事物角度看:领 域聚合实体表达的是购物车这个事物的分析设计方法,以一种静态结构性来表达事物;从用户购买者这个角度看:用户将选购的商品放入购物车,删除购物车已有商 品,这些都是用户的操作行为,每一个操作行为相当于发出一个个命令command,在一定场景中转化为事件,事件会改变购物车状态,这是一种以动态行为 (面向函数)来表达与人有关的需求。

猜你喜欢

转载自talentluke.iteye.com/blog/1722711