Scala 理解AKKA持久性和ES和CQRS原则

Scala 理解AKKA持久性和ES和CQRS原则,scala,akka,cqrs,event-sourcing,akka-persistence,Scala,Akka,Cqrs,Event Sourcing,Akka Persistence,我最近看了几段关于ES和CQRS模型的视频,也看了一些关于AKKA持久性的讨论。我知道它们是关于什么的,但我在编写将要执行的实际代码时遇到了问题 不过我有几个问题。 我应该如何使视图和事件堆栈通信? 事件是否会在视图和传递的持久性id相同的持久性参与者之间传递? 根据模型,持久参与者和视图负责什么 编辑:我应该将我的业务逻辑放在哪里?根据模型,我应该在写的时候这样做,但是如果我需要在读的时候检查一些东西来验证cmd呢?你不需要在读的时候检查一些东西来验证一个命令-你的命令将根据你的写模型执行 如

我最近看了几段关于ES和CQRS模型的视频,也看了一些关于AKKA持久性的讨论。我知道它们是关于什么的,但我在编写将要执行的实际代码时遇到了问题

不过我有几个问题。 我应该如何使视图和事件堆栈通信? 事件是否会在视图和传递的持久性id相同的持久性参与者之间传递? 根据模型,持久参与者和视图负责什么


编辑:我应该将我的业务逻辑放在哪里?根据模型,我应该在写的时候这样做,但是如果我需要在读的时候检查一些东西来验证cmd呢?

你不需要在读的时候检查一些东西来验证一个命令-你的命令将根据你的写模型执行

如果使用Akka,那么您的业务逻辑将放在编写端,然后放在演员内部


您没有说明您的视图是什么,因此可能有多种通信方式—例如,如果您可以对网页执行req/res,或者使用类似Signal的操作,我想使用akka persistence中的PersistenceView,但它已被弃用。我知道这个逻辑是用来编写模型的,但如果我需要检查是否早些时候发生了什么事情?据我所知,信息是以视图所持有的状态存储的。那么,我应该在读写之间发送垃圾邮件吗?如果你描述实际问题可能会有所帮助,因为这样抽象的描述很难理解。好吧,我只是误解了想法,现在一切都清楚了。有时我感觉整个阿克卡社区都在回避这个问题。无论如何,
PersistentView
已被弃用,所以我个人建议改用Akka持久性查询。在读取端,您将在read actor中投影所有事件,并更新您的读取存储(一些数据库)。Persistent actor负责将事件写入事件存储(也包括一些数据库),应答事件并使用它们更新其状态。希望有人能举一个小例子,最终澄清ES和CQR在Akka的正确实施。@BranislavLazic谢谢好心的先生。这就是我需要知道的。我查了很多资料,每一个都有点不同。阿卡医生不像长生不老药那么好,这太糟糕了……看到了吗