Hen*_*son 1 domain-driven-design transactions
在阅读了沃恩·弗农(Vaughn Vernon)的《实现领域驱动的设计》之后,我对至少一件事感到困惑。他在第12章存储库中说,事务是在应用程序层中管理的。但是他还说,聚合是事务一致性边界的同义词。而且由于存储库提供了对聚合的全局访问,所以为什么不能在存储库中管理事务?是因为规则聚集==事务一致性边界只是有时必须打破的经验法则,还是还有其他内容?
为什么不能在存储库中管理交易?
由于存储库不是的抽象"a business transaction",因此存储库是的抽象"a collection of domain objects that you can take from or add to"。
根据定义,交易具有开始和结束。这是一个过程。仓库不是。交易和信息库之间的关系不是为-A ,它具有-A 。事务使用其存储库。
当我们说聚合应该是一致性边界时,我们的意思是说它应该是事务包含的唯一状态块,而不是说聚合应该与事务相同。