首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在CQRS +事件采购架构中管理ViewModel更改

如何在CQRS +事件采购架构中管理ViewModel更改
EN

Stack Overflow用户
提问于 2011-04-07 21:43:44
回答 4查看 3.8K关注 0票数 20

我们目前正在评估CQRS和事件采购架构。我正在尝试理解使用这种设计的维护含义是什么。我正在努力寻找答案的两个问题是:

1)如果在应用程序启动并运行了一段时间后,需要向ReadModel数据库上的ViewModel添加一个额外的字段,会发生什么情况?比方说,客户邮政编码在CustomerList ViewModel上是必需的,而以前没有。因此,可以很容易地将额外的列添加到ViewModel数据库,但是如何填充这些列呢?据我所知,唯一的方法是清除读取的数据库,并从头开始重放所有事件以构建ReadModel数据库。但是,如果应用程序已经启动并运行了几个月或几年(正如我们希望的那样),该怎么办?这可能是数百万个要重放的事件,仅仅是为了添加zipcode列的数据。

无论出于何种技术原因,如果ReadModel数据库不同步,或者我们想要添加一个新的ReadModel数据库,我也有同样的担忧。似乎应用程序越旧,使用得越多,就越难和昂贵地重新获得最新的readmodel。或者我错过了什么把戏?像ReadModel快照这样的东西?

2)如果在重播了数百万个事件以构建读取数据库后,某些数据与预期不符(即看起来是错误的),会发生什么情况?人们认为,可能是事件存储或反规范化例程中的某个bug导致了这种情况(似乎在编码中有一件事可以依靠,那就是bug)。如何去调试这个!这似乎是一项不可能完成的任务。或者,再一次,我错过了一个小把戏。

我很有兴趣听到任何人谁已经运行了这样的系统一段时间,如何维护和升级路径为您工作。

感谢您的宝贵时间和投入。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5582089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档