实施领域驱动的设计和交易

Hen*_*son 1 domain-driven-design transactions

在阅读了沃恩·弗农(Vaughn Vernon)的《实现领域驱动的设计》之后,我对至少一件事感到困惑。他在第12章存储库中说,事务是在应用程序层中管理的。但是他还说,聚合是事务一致性边界的同义词。而且由于存储库提供了对聚合的全局访问,所以为什么不能在存储库中管理事务?是因为规则聚集==事务一致性边界只是有时必须打破的经验法则,还是还有其他内容?

gui*_*e31 6

为什么不能在存储库中管理交易?

由于存储库不是的抽象"a business transaction",因此存储库是的抽象"a collection of domain objects that you can take from or add to"

根据定义,交易具有开始和结束。这是一个过程。仓库不是。交易和信息库之间的关系不是为-A ,它具有-A 。事务使用其存储库。

当我们说聚合应该是一致性边界时,我们的意思是说它应该是事务包含的唯一状态块,而不是说聚合应该事务相同