是CQRS纠正我的域名?(Is CQRS correct for my domain?)

2019-09-18 09:46发布

我建模存档这是一个视频点播系统的一部分。 想想归档类似于Windows资源管理多个用户可以创建文件夹,上传视频,重组文件夹等有业务规则(权限),它决定是否允许用户做任务(即重命名文件夹,移动文件夹,文件夹视图等)。

我已建模的每个文件夹作为一个聚集体根和一个文件夹移动到另一文件夹似乎影响2骨料根。

从我的理解是,我应该发送一个事件以修改其他聚合。 然而让我忧心忡忡是,如果第二个文件夹也进行了修改(比如删除或从系统中删除),那么我需要发送一个补偿命令撤消第一个总的变化。

我宁愿某种交易,随着移动(其他两个集合)一起交易,如果再失败,至少我不需要撤消移动的第一部分,或引发该事件的第一部分。

这使我,是我试图解决这个问题CQRS吧? 如果是的话它可能是我的聚集是错误的?

Answer 1:

在DDD总结应该代表事务边界。 需要不止一个总的参与事务常常是一个标志,无论是模型要细化,或事务需求进行审查,或两者兼而有之。

这是一个纯粹的DDD问题,是独立的CQRS或任何其他的建筑格局。

在另一方面,你真的需要彻底改造的层次结构像包含文件的文件夹? 据我可以告诉这已经相当长的一段时间内解决问题。 也许有在一次正式的具体领域没有固有的优势。

采用DDD的模式域建模使得在有限环境中最有意义的地方(1)域是非常复杂的,(2)模拟域会给你的软件真正的(例如竞争性的)优势类似的应用。 如果具体的界定方面是相当简单和/或重塑它并没有带来一个真正伟大的优势,你最好用最简单可行的解决方案。

这代表了领域驱动设计的恕我直言,最重要的概念,它是专注于核心领域



文章来源: Is CQRS correct for my domain?