首页 文章

如何以及在何处处理AkkaPersistence持久化事件以使信息对响应式UI有 Value 且有意义?

提问于
浏览
2

我非常熟悉 PersistentActorPersistentView 在实现 Akka Persistence 时如何工作 .

根据我的理解,请考虑以下示例 .

Scala案例类 Contact .

case class Contact(id: String, version: Int, fName: String, lName: String, age: Int)

期刊中的PersistentActor持久性事件是:

ContactCreated("123af-232ff-232d", 1, "john", "doe", 25)
FirstNameChanged("123af-232ff-232d", 2, "jan")
AgeChanged("123af-232ff-232d", 3, 27)
FirstNameChanged("123af-232ff-232d", 4, "janet")

每次从响应UI发送命令时,如果验证成功,则会保留此类新事件202 CommandAccepted或任何触发的CommandValidationError .

但是在响应环境没有明显延迟的情况下,UI必须能够查询 REST API backend 并在后端 WebSocket push 通知UI UUID "123af-232ff-232d"可供读取后显示最新的 Contact object

Contact("123af-232ff-232d", 4, "janet", "doe", 27)

根据我的理解,将所有事件与可用的最新数据合并后,应该会发生此结果 .

所以,我的实际担忧是: How and where in this backend application I do the processing of those events as soon as they are generated, merge those data, and store the merged data for reading by the query side.

如果有人能够阐明实施或纠正我的想法,许多人会提前感谢 .

1 回答

  • 0

    Contact 的当前状态可能与实际状态不同,在视图中,您将不会接受视图的最终一致性 .

    我会将其保持为持久化actor内的状态,并允许对actor进行查询以获取当前 Contact 并使用它 .

相关问题