我们正在使用NEventStore(艺术家原名Jonathan Oliver的EventStore)来存储我们的CQRS事件。如果我们希望向事件添加新属性,我想知道是否有必要创建事件的新版本。
我知道我们不应该重命名现有属性,因为在从EventStore读取事件时会产生问题。但是,如果我们只是添加新的属性,会不会产生任何问题?
取决于如何序列化消息。换句话说,表达这一点(/search for a existing answer)的最佳方式是确定如何序列化消息,然后找出该机制如何处理该问题。
假设它是带有JSON.NET和简单POCO的JSON,那么答案是添加属性的处理非常干净——在没有任何自定义的情况下(这是非常可行的),新字段会带有default(T)
,即每个相关值的null
或0
。