最近我正在学习 CQRS,并希望更改我的系统以使用事件溯源模式。
但我发现在.Net平台上,有两个事件存储实现。
- NEventStore(原JOliver EventStore)
- EventStoreDB(从 EventStore.com 开始)
这两种实现让我感到困惑 - 有人可以解释它们之间的主要区别吗?
NEventStore 是一个与持久性无关的 .NET 事件溯源库,具有多个存储选项,例如关系数据库和文档数据库。
EventStoreDB 是一种更新且高性能的事件溯源解决方案,具有自己的持久性引擎和适用于多种协议和语言的 API。它具有开源和商业选项。
据我所知,您也可以在未来版本的NEventStore中使用EventStoreDB作为NEventStore的持久性引擎。
除了提到的EventStoreDB和NEventStore之外,还有相对较新的SQLStreamStore库,在概念上类似于NEventStore。
它们有一些本质的区别,但从历史上看,SQLStreamStore可以被认为是NEventStore的继承者。SQLStreamStore damianh 的作者以前是 NEventStore 的维护者。NEventStore的最新版本是2014年3月15日,SQLStreamStore正在积极开发。
有关创建 SqlStreamStore 的更多详细信息,请参阅答案 SQLStreamStore vs NEventStore vs EventStore #108