我希望将一个具有清晰域模型的相对较新的基于 Web 的应用程序转换为更多 CQRS 风格的系统。我的新应用程序本质上是对现有旧系统的增强替代。
我的组织中的现有系统共享一组通用数据库,这些数据库由整个公司孤岛中存在的无数应用程序(通过混沌方法开发)进行更新。 (就目前情况而言,我相信公司里没有一个人能够识别出他们的全部身份。)
因此,我的问题是关于我的应用程序的读取模型。由于各种状态更改、一般用户数据等是由我无法控制的其他应用程序更新的,那么以我可以处理外部更新的方式构建读取模型的最佳方法是什么,但仍然保持事情相对简单?
到目前为止我已经考虑过以下几点:
- 在数据库中为读取模型创建视图,读取所有表(旧表和新表)
- 向现有表添加触发器以更新新的读取模型表
- 向数据库添加一些代码(CLR Stored proc/etc [sql server])以更新读取模型的外部数据存储
- 放弃希望
对于如何解决这个问题,普遍的共识是什么?认为我可以在不从头开始完全重写所有内容的情况下为遗留系统带来秩序是愚蠢的吗?
我已经成功地使用了选项#1。创建视图来降低数据的士气以创建读取模型是一个可行的选择,具体取决于写入数据库的复杂性。意思是,如果大多数开发人员都可以理解它是相对简单的连接,那么我会仔细看看它是否适合您。我会小心这些视图中的过于复杂的内容。
另一件需要考虑的事情是定期轮询来构建和更新,类似于传统的报告数据库。尽管与通知相比不是最佳选择,但取决于您的读取模型的陈旧程度,这也可能是一个值得考虑的选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)