我想使用 akka-persistence 事件溯源功能,以便在我的新项目中实现 CRQS + 事件溯源理念。问题是除了文档(http://doc.akka.io/docs/akka/snapshot/scala/persistence.html)之外,我找不到任何好的示例或指南如何处理它。该文档很好地解释了架构的所有构建块,如处理器、视图、通道,但没有解释如何将它们组合在一起。
所以问题是:我应该如何将写入模型与 akka-persistence 中的读取模型连接起来?我想出了三个选择:
直接连接EventsourcedProcessor -> View,View直接从日志中接收所有事件。这似乎是最简单的解决方案,但我想知道我们是否可以使用这种方法在不同的节点上分配处理器和视图。
EventsourcedProcessor -> 频道 -> 视图/普通 Actor。与第一个选项有什么区别?如果这是正确的解决方案,为什么我们在 akka-persistence 构建块中有视图?我应该使用 Channels 还是 PersistentChannels ?
EventsourcedProcessor -> 某种事件总线(例如 context.system.eventStream) -> Views/Actors。
最好的方法是什么,为什么?