使用带有 ElasticSearch 的 EventStore 实现 CQRS

Implement CQRS using EventStore with ElasticSearch

我目前正在学习 使用 ElasticSearch 和 EventStore 实现 CQRS。因此,我决定使用 EventStore 将严重的事件流保存到 EventStore 中,并且我想使用 Elastic Search 从 EventStore 中查询 Data/CurrentState 数据。

我的问题是,

1.) 使用 ElasticSearch,我们应该直接从 EventStore 查询聚合的 Data/CurrentState 数据还是我们需要 Sync/Store 聚合的 [=46] =] 数据进入ElasticSearch 查询?

2.) sync/index 事件存储 数据到 elastic search 的正确方法是什么?我们是否需要使用任何中介来 sync/index EventStore 数据 进入弹性搜索? 我的最终目标是构建 CQRS 实现,使用 EventStore 命令和 ElasticSearch 查询

注:我打算在.net Core中使用NEST构建一个系统和 ElasticSearch.net dll.

非常感谢您的想法。

提前致谢。

由于您处于学习阶段,我强烈建议您将 Elastic 和 EventStore 从您的初始实现中剔除。专注于CQRS,实现一个简化版的ES。在此阶段,您不需要成熟的事件溯源方法。

我不确定你对Scala/Java有多熟悉,但我强烈建议你看看 Akka Framework 来实现 CQRS。

对于 Command/Write 侧 Akka 有限状态机与 Cassandra 持久性,同时必须以有组织的方式处理我们获得的事件数量和 Elasticsearch 与 Akka 投影来实现 CQRS 的读取侧。

我写了一篇关于它的博客,如果有人感兴趣的话 CQRS with Akka