根据http://cre8ivethought.com/blog/2009/11/12/cqrs--la-greg-young,负责使用事件发布者发布事件的组件是存储库.
我的问题很简单:为什么?
在这篇博文中,我们被告知:
域存储库负责发布事件,这通常在单个事务内部,同时将事件存储在事件存储中.
我希望这可以作为事件存储的任务:一旦存储了一个事件(或多个事件),它就会被发布.
那为什么它在存储库中呢?
您的域模型不知道存储机制.另一方面,无论您使用事件存储,经典SQL存储还是任何其他持久性方法,它都必须确保发布相应的事件.
如果您依赖事件存储来发布事件,那么您将与存储机制紧密耦合.