【发布时间】:2014-04-23 21:42:41
【问题描述】:
我想使用 akka-persistence 事件溯源功能,以便在我的新项目中实现 CRQS + 事件溯源理念。问题在于,除了文档 (http://doc.akka.io/docs/akka/snapshot/scala/persistence.html) 之外,我找不到任何好的示例或指南来处理它。该文档很好地解释了架构的所有构建块,如处理器、视图、通道,但没有解释如何将它们组合在一起。
所以问题是:我应该如何将写入模型与 akka-persistence 中的读取模型连接起来?我想出了三个选择:
直接连接EventsourcedProcessor -> View,View直接从journal接收所有事件。这似乎是最简单的解决方案,但我想知道我们是否可以使用这种方法将处理器和视图分布在不同的节点上。
EventsourcedProcessor -> 通道 -> 视图/普通 Actor。与第一个选项有什么区别?如果这是正确的解决方案,为什么我们在 akka-persistence 构建块中有视图?我应该使用 Channels 还是 PersistentChannels ?
EventsourcedProcessor -> 某种事件总线(例如 context.system.eventStream) -> 视图/Actor。
最好的方法是什么?为什么?
【问题讨论】:
-
有关使用 Akka Persistence Query 和 Akka Streams 的更新答案,请参阅stackoverflow.com/a/42941900/2113120
标签: akka cqrs event-sourcing akka-persistence