我正在考虑使用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
我是否适当地坚持举办活动?
共享写和读/聚合器端之间的联系的最佳实践是什么?
答案 0 :(得分:0)
首先,您需要确定要使用的序列化格式/协议。
Akka持久性与Java序列化是开箱即用的,这对于快速概念验证很有用,但不适用于生产系统。您可以从protobuf,avro甚至json中进行选择。有很多可供选择的序列化协议。检出this。
以此为基础,您可以选择在protobuf或avro情况下如何共享架构。
此外,您还必须实现自己的事件序列化程序或使用default序列化程序。然后考虑如何管理未来的event schema evolution。
所有这些最终决定了如何共享和管理事件模式。