versioning - 向现有 CQRS 事件添加更多属性

标签 versioning cqrs event-sourcing document-versioning

我们使用 NEventStore(艺术家以前称为 Jonathan Oliver 的 EventStore)来存储我们的 CQRS 事件。我想知道如果我们希望向事件添加新属性,是否需要创建新版本的事件。

我知道我们不应该重命名现有的属性,因为这会在从 EventStore 读取事件时产生问题。但是,如果我们只添加新属性会不会产生任何问题?

最佳答案

取决于您如何序列化消息。换句话说,最好的表达方式(/搜索现有答案)是确定您如何序列化消息,然后找出该机制如何处理问题。

假设它是带有 JSON.NET 和简单 POCO 的 JSON,那么答案是添加属性的处理非常干净 - 在没有任何自定义(这是非常可行的)的情况下,新字段随 default(T) 一起出现。 ,即 null0对于每个相关值。

关于versioning - 向现有 CQRS 事件添加更多属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17719434/

相关文章:

sql-server - 什么是 MSSQL 数据库设计和版本控制的良好实践/工具?

cqrs - 使用 NEventStore 的内置 JSON Serializer 序列化复杂类型

nosql - 文档/NoSQL 数据库是存储 Assets 负债表的理想选择吗?

java - 使用 Axon 4 与某些 "aggregateIdentifier"相关的 Axon Replay TrackingEvent

hibernate - 如何在 Grails 中管理对象修订?

ruby-on-rails - 我可以使用 papertrail 存储 "pending-approval"更改吗?

ios - iOS 何时更改版本号?

c# - CQRS - 如何处理用户查看页面或查询

c# - nservicebus启动错误

domain-driven-design - 在事件溯源环境中对聚合根及其相关实体进行再水化的最佳方法是什么