【发布时间】:2012-06-23 11:22:00
【问题描述】:
我正在对作为视频需求系统一部分的存档进行建模。想想像 Windows 资源管理器这样的存档,其中多个用户可以创建文件夹、上传视频、重组文件夹等。有一些业务规则(权限)确定用户是否被允许执行任务(即重命名文件夹、移动文件夹、查看文件夹等)。
我已将每个文件夹建模为聚合根,将一个文件夹移动到另一个文件夹似乎会影响两个聚合根。
据我了解,我应该发送一个事件来修改另一个聚合。然而,我担心的是,如果第二个文件夹也被修改(比如从系统中删除或删除),那么我需要发送一个补偿命令来撤消第一个聚合更改。
我更喜欢某种同时处理移动(更改两个聚合)的事务,如果它失败,那么至少我不需要撤消移动的第一部分或引发事件的第一部分。
这让我想到,CQRS 是否适合我要解决的问题?如果是这样,是不是我的聚合有误?
【问题讨论】:
标签: domain-driven-design cqrs aggregateroot