gpt4 book ai didi

domain-driven-design - 您如何处理具有更新频率与根不同的子实体集合的聚合根?

转载 作者:行者123 更新时间:2023-12-01 08:52:49 24 4
gpt4 key购买 nike

我们的系统中有一个聚合根,并且在集合中有子实体。问题是容器需要非常频繁地更新,以事务为基础,而子实体不需要,实际上它们几乎不会改变,它们本质上更像是配置。

我的第一个 react 是将它们分成两个不同的聚合根,因为我们的应用程序要求。但是我想起了级联删除规则,如果我们删除一个,那么删除应该级联,所以它们的生命周期是链接的。

当我们发现我们有一个缓存问题时,我们偶然发现了这个问题。对子实体(配置)的更改在运行时没有反射(reflect)在系统中,因为父实体不知道这些更改(我们将它们作为一个聚合根,但有人为其子实体创建了一个存储库)。

最佳答案

聚合边界的主要驱动因素是域的不变量——或者换句话说,聚合边界应该是一致性边界。 必须以原子方式一起更改的事物必须在同一个集合中。

级联删除(就聚合边界而言)与其说是规则,不如说是一个不错的选择。您始终可以强制执行 Parent 的事实。通过在您加载的地方要求一个仍然存在 Child实体。通过这种设计,您可以制作 ParentChild不同的聚合,同时仍然执行没有“自由 float ”的规则Child可以请求聚合。并删除 Child聚合以响应已删除的 Parent如果您有域事件就很容易。

注意:所有这些都假设您的域不变量首先允许分离聚合。

关于domain-driven-design - 您如何处理具有更新频率与根不同的子实体集合的聚合根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37409582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com