【发布时间】:2020-01-11 14:10:46
【问题描述】:
老实说,我不知道从哪里开始。存储库方面相对简单,但我似乎找不到任何有关如何通过 CommandGateway 删除聚合根的信息。
任何有关如何实现此目标的说明和/或文档将不胜感激。
【问题讨论】:
-
您使用事件源聚合还是状态存储聚合?请注意,无论哪种情况,CommandGateway 都与此无关,因为它只是调度命令消息的 API。
-
我正在使用事件源聚合。我所做的挖掘让我相信我需要实现一个存储库,允许我使用聚合 id 直接删除 DomainEventEntry。这样做是否可取?
-
对其他评论表示歉意。进一步的研究表明存在 markDeleted() - 我认为这保留了导致聚合被“删除”的事件的历史,并且是使用事件溯源时的首选机制?
-
没错。使用事件溯源,“删除”实际上并不存在。它只是一个和其他任何状态一样的状态,除了在“已删除”状态下,所有命令都被拒绝。
-
感谢您抽出时间 Allard,非常感谢。
标签: axon