【发布时间】:2020-10-27 18:57:36
【问题描述】:
在我们的应用程序中,我们使用了 Jonathan Oliver 的 EventStore 和 CommonDomain。我们用于存储事件的数据库是 SQL Server 或 Oracle。
对于特定用例,我们需要通过一个命令更新多个聚合。我意识到(在 CQRS 中)理想情况下,一个命令应该只更新一个聚合,但在我们的例子中,一次更新多个实例是一项特定要求。
有没有一种简单的方法(不使用两阶段提交)来使这个操作原子化,如果是的话,那怎么可能?
编辑:这个问题特定于 EventStore 框架的使用(也可能是 CommonDomain 框架的存储库)。这不是关于事务处理或工作单元模式的一般问题(我很清楚)
【问题讨论】:
-
我强烈建议将您的用例放在一个 DDD 论坛中,因为您非常怀疑您是否需要影响两个聚合。 OTOH,一般建议是使用域服务(同样不是很有用)。在技术层面上,您可能希望共享 ConnectionScope 或 TransactionScope(并不意味着分布式 Tx)。
标签: transactions neventstore commondomain