如何在生产中发展akka-persistence事件?

时间:2015-07-22 09:28:06

标签: scala akka akka-persistence

假设我们使用akka-persistence设计我们的系统。现在,我们将事件存储在事件存储中。而在生产系统中,要求提供新功能。因此,我们发现最好的方法是在事件中添加或修改字段。让我们说改变字段名称或类型。

现在,我们有两个版本的事件,即我们在生产中的版本,以及新部署中的一个版本,它们是不兼容的。如果我们尝试从旧版本恢复数据,我们将失败。

除了数据迁移之外,最好的方法是什么?

1 个答案:

答案 0 :(得分:5)

这绝对是在生产中使用akka持久性的一个更大问题。关于akka-user mailing list已经进行了很多讨论。

我想说,只要新功能只需要其他信息,那么使用允许有限模式演变的序列化格式(如google协议缓冲区或json)将是一种解决方案。

如果新功能需要更改现有数据,除了进行数据迁移之外,您无法做任何事情。