事件驱动和事件源之间有什么区别?


13

我正在研究域驱动设计(DDD),并且遇到了一些术语:事件驱动和事件源。我知道这与从生产者到消费者发布事件并存储日志有​​关,所以我的问题是:

事件驱动和事件源之间有什么区别?

Answers:


16

术语“ 事件驱动的体系结构”用于任何基于主要或专门通过事件进行通信的组件的软件系统。例如,任何流行平台上的几乎所有主要GUI框架都使用事件驱动机制。在这种情况下,术语“事件”通常表示“通知”。

事件源是一个更为特殊的术语,是指将整个应用程序状态存储为事件序列的系统。事务类数据库系统是一个众所周知的流行示例,它可以将任何状态更改存储在事务日志中。在此,术语“事件”更多地指“状态改变”,而不仅指“通知”。

因此,任何以“事件源”为核心机制的系统都可以看作是均匀驱动的系统,但通常情况并非如此。


提出了您的答案。我现在正在本人中查找,并首先遇到了您的答案。看一下“整个应用程序状态存储为序列事件”一词,您似乎在说:“应用程序的状态不是直接以当前形式持久保存。而是执行的每个创建,更新或删除操作对象或模型上的“事件”被视为“事件”,而直接保留的是“事件”。因此,要获取对象的当前状态,必须重播这些事件以重建其副本。” 这听起来正确吗?
Panzercrisis

1
@Panzercrisis:我应该写过“事件源将所有对应用程序状态的更改存储为一系列事件”。(如Fowler)。所有对象通常都具有“当前”状态,该状态以及事件序列本身也可以保留(可以推迟)。我建议阅读Fowler的文章以获取完整说明。
布朗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.