我拥有的网站有一个运行良好的简单 CQRS 架构。一个事件被不同的订阅者发布和接收,其中一个使报告数据库保持同步[在 RavenDb 中]。
例如,我的报告数据库已损坏/丢失。使用事件溯源,我可以重播事件并重建报告数据库,但是我 [当前] 不使用事件溯源;我有一个简单的 nHibernate 持久化到关系存储。解决方案是创建一个“重新生成”类型的脚本,该脚本基本上将基于关系存储发送所有事件(例如,PersonCreatedEvent 后跟 30xPersonLikedBlogPostEvent 等)?它本质上与事件源所做的事情相同,但事件是从关系模型中推断出来的。
可维护性和 DR 显然很重要。