netcorepal / netcorepal-cloud-framework

基于 ASP.NET Core 的领域驱动设计微服务架构实现方案
https://netcorepal.github.io/netcorepal-cloud-framework/
MIT License
115 stars 29 forks source link

对于像是订单的创建、修改、拆分、删除这样的历史记录应该怎么处理呢? #16

Closed yc-2503 closed 5 months ago

yc-2503 commented 6 months ago

首先这种历史记录与业务关系不大,如果放在聚合根的Class里处理并不太合适; 并且这种历史记录,与业务关系不大,放到应用层去处理也不合适; 如果放到 领域事件中处理,但是DomainEventHandler的职责是发起命令, 在领域事件中处理也不太合适; 如果放到 领域服务中处理,那对订单的所有修改行为基本上都要放到领域服务中了,订单的充血模型就会变成一个贫血模型

witskeeper commented 6 months ago

应该是在领域事件处理器中,发起历史记录的命令。 例如 订单创建,会发起 OrderCreatedDomainEvent,由OrderCreatedDomainEventHandler来处理该事件,并发出命令RecordOrderCreatedCommand,来记录历史记录