如何在CQRS akka持久性中的读写之间共享EntityModel

时间:2018-12-10 03:44:38

标签: akka cqrs akka-persistence

我正在考虑使用CQRS进行Akka持久性测试。 在我的“写”方面,我拥有这样的实体

case class Evt(data:String)

我的持久代码如下

persist(Evt(s"${data}"))

所有工作都在写方面进行。

我正在使用Redis日记插件。

当我尝试在Read端读取日记条目时,它正在寻找类WriteModel.Evt并看到以下错误

[akka.dispatch.Dispatcher] WriteModel.Evt java.lang.ClassNotFoundException: WriteModel.Evt

我是否适当地坚持举办活动?

共享写和读/聚合器端之间的联系的最佳实践是什么?

1 个答案:

答案 0 :(得分:0)

首先,您需要确定要使用的序列化格式/协议。

Akka持久性与Java序列化是开箱即用的,这对于快速概念验证很有用,但不适用于生产系统。您可以从protobuf,avro甚至json中进行选择。有很多可供选择的序列化协议。检出this

以此为基础,您可以选择在protobuf或avro情况下如何共享架构。

此外,您还必须实现自己的事件序列化程序或使用default序列化程序。然后考虑如何管理未来的event schema evolution

所有这些最终决定了如何共享和管理事件模式。