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/

相关文章:

apache-flex - Flex 自定义 RSL 库缓存问题

versioning - CouchDB 版本控制策略

php - 使用 phpMyVersion 的经验

cqrs - 对 React 的 Flux 架构感到困惑 - waitFor

domain-driven-design - 事件溯源和乐观并发控制

python - 使用蓝图进行 API 版本控制会导致冲突

cqrs - 如何在 CQRS 应用程序中实现数据网格

domain-driven-design - 将引用的聚合根转换为另一个聚合根

带两个参数的 Spring @EventListener

apache-kafka - 在 Kafka 之上并发写入事件源