【发布时间】:2017-06-27 13:42:23
【问题描述】:
我目前正在使用 Scala 和 Eventuate,但我认为这个问题适用于任何事件源环境:
假设您有以下事件:case class UserAdded(user: User),而User 是case class User(username:String, birthday: Date)。
您的应用已经运行了一段时间,现在您需要收集用户的电话号码。所以现在我们需要将User 更改为case class User(username:String, birthday: Date, phoneNumber: String)。
重播事件时,会抛出错误,因为过去的事件没有phoneNumber。您通常如何在事件源应用程序中解决这个问题?
我的第一个想法是为事件存储中的所有事件设置一个默认值,但我知道在进行事件溯源时事件是不可变的,因此我决定听取更有经验的用户的意见。
非常感谢任何输入!
【问题讨论】:
标签: scala event-sourcing