【发布时间】:2018-03-01 19:19:07
【问题描述】:
我必须在需要保持本地数据库和外部(第三方)API 之间的一致性的类似存储库的类上实现操作。其中一些 API 可能只为某些操作提供部分成功/部分失败语义(即非原子)。但是,我想确保我实现的操作确实具有原子/事务语义,例如如果对 API 的请求成功,我只会更新我的数据库,并且该外部服务中的任何内容也会复制到数据库中。
是否有任何有用的模式来处理这个问题,或者其他关于如何解决这类问题的指针?
谢谢!
【问题讨论】:
-
在我看来,您想在完成另一个操作后执行一些操作。因此,看起来它将通过使用“状态设计模式”来处理。您可以使用图表进行详细说明以更好地理解。
标签: design-patterns transactions repository-pattern atomic design-principles