异步幂等域事件处理程序?

时间:2013-12-08 10:29:27

标签: asynchronous architecture domain-driven-design domain-events

根据最佳实践,单个命令应在单个事务中更新不超过单个聚合。

考虑以下业务场景: 将OrderLine添加到订单后,我们应编写描述交易的日记帐分录。 日志条目可以在几秒钟后写入 - 最终可以保持一致。

在网上搜索可能的解决方案后,我遇到了IAfterCommitEventHandlers,当OrderLine成功提交时,它们只被引发

有些实现使用两阶段提交同步执行,有些是异步执行。

我的建议是将所有事件处理程序设计为异步,并将JournalService设计为Idempotent,并在执行日志操作之前检查OrderLine是否已成功保留,从而无需进行两次分阶段提交等...

这个解决方案是否太简单了,我错过了什么?

**请注意,使用此解决方案时需要持久事件发布**

提前致谢,

埃里克。

0 个答案:

没有答案