我一直在为一个使用 J Oliver 的 EventStore 和 mongo 作为持久层的新项目研究事件溯源,但遇到了一些问题:
在尝试事件源之前,我的域一直保存到一个数据库中,并且我一直在使用 Udi 的域事件模式,这对我来说非常有效,NHibernate 管理工作单元。但是,我最终得到了一个可以影响多个聚合的工作单元,例如。
我“结帐”我的购物篮聚合引发了一个事件,处理程序通过创建一个发票聚合来响应该事件,该发票聚合反过来引发一个事件(这只是一个示例)
在这种情况下,我有一个改变两个聚合根的工作单元 - 在事件存储中,我可以将引发的事件添加到两个不同的事件流中,但它们不会以原子方式持久化(第一个可能成功,第二个失败) . 那么人们怎么做才能避免这种情况发生呢?
在github主页上,它建议您可以使用流畅的界面来配置EventStore,但是当我下载源代码时,编译它并在示例中查看wireup类似乎不可用 - 它是否在不同的分支中? (我有师傅)
处理 IStoreEvents impl 的推荐方法是什么?作为类似于 Nhibernates 会话工厂的单例?