PHP-在CQRS中反规范化/投影数据
作者:互联网
我正在研究CQRS(通常是DDD),但不确定如何实现它的特定部分.
我了解分离命令和查询的好处;出于这个原因,让我们说我也在使用事件源,并且我对每个实体都有一个很好的历史记录列表.
据我了解,构建视图的数据存储可以采用任何形式,对性能进行非规范化是完全可以接受的.
我的问题是如何实现从标准化/以事件为中心的写数据库到视图就绪/非标准化表的转换/投影?
我是否可以使用域模型中的事件(由应用程序的另一部分侦听)来实现?我是否使用SQL视图(使用RDBMS / NoSQL混合将不起作用).
如何在不使用各种不必要的吸气剂污染域模型的情况下做到这一点?
谢谢
解决方法:
您正在使用域事件来管理已阅读的预测,这是正确的.您的聚合不需要公开其内部状态,因为它们广播的域事件将包含所有必要的信息来更新视图投影.然后可以以任何形式存储视图投影数据.
有关实现的详细信息,请查看Greg Youngs CQRS example,尤其是domain implementation和read model implementation.
标签:domain-driven-design,cqrs,php 来源: https://codeday.me/bug/20191121/2052773.html