Event Sourcing and Domain Event
目前看到的Event Sourcing的框架和例子,为了能够用event replay来恢复系统状态,event中需要包含所有变化的信息,而且是静态的信息。比如MatchFinishedEvent 要包含日期,比分等,
|
因为都叫event, 我一直认为这里的event和domain event是一致的,这个event最终也会发布到event bus上供外部的subscriber消费。但是仔细想想,又觉得十分的不妥。Domain event为什么要包含那么多的信息?外部的订阅者完全不需要根据这个event来恢复状态,他们需要的只是一个“谁发生了什么类型事件”的提醒,domain event只要是下面这样就足够了。如果订阅者感兴趣,他可以根据实体id去直接查询实体的最新信息。
|
所以我的感觉是event sourcing 中的event并不等同与domain event, 而且不应该被发布到event bus上供外部的订阅者使用。只有domain event才应该被发布到event bus上。
实际上event sourcing 中的event叫做change更合适, 他和event的概念还是不一样的。
[该贴被supernavy于2013-11-28 12:57修改过]