gpt4 book ai didi

cqrs - 如何处理删除及其相关聚合?

转载 作者:行者123 更新时间:2023-12-05 00:48:37 25 4
gpt4 key购买 nike

如果聚合被标记为已删除,您应该如何处理相关聚合?

例如,假设您有一篇文章,该文章有评论,这些评论有评论回复,而这些回复已被点赞。

如果文章被删

  • 是否应该为每个评论/回复/喜欢创建一个事件来通知这些已被删除?
  • 还是应该将文章标记为已删除,然后在命令处理程序中检查该标记状态是否要创建/更新这些评论?
  • 最佳答案

    这取决于您的业务规则和聚合设计。

    如果评论和喜欢是文章聚合的嵌套实体,那么您不应为它们产生额外的 XXXDeleted 事件,因为聚合中不需要这些事件。如果某个命令(对于任何嵌套实体)随后出现在聚合中,则它知道它(文章)已被删除,它将拒绝它。 Read-models 可以这样设计,当 ArticleDeleted 事件发生时,它们也会删除它的所有评论和喜欢。

    如果评论也是聚合,并且您有一些业务规则规定来自已删除文章的任何评论也必须删除,那么您必须为每个链接的评论发送 DeleteComment 命令。您可以从 Saga/流程管理器执行此操作。为了追溯删除注释的原因,您应该在 DeleteComment 命令的元数据中将命令 ID 作为关联 ID 传递。读取模型不需要特殊设计,因为它们会像往常一样应用 CommentDeleted 事件。

    关于cqrs - 如何处理删除及其相关聚合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49347830/

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