DDD:哪里坚持非域名数据?

时间:2016-05-02 00:49:50

标签: domain-driven-design persistence external

我的应用程序调用外部结算api并收回一个外部ID,必须将其发送到第二个外部服务以检查结算确认。外部ID仅在该时刻使用,对我的域名没有意义。哪个地方最好存放?

2 个答案:

答案 0 :(得分:1)

您希望保留此信息这一事实告诉我,此结算过程是作为一系列异步操作发生的,否则您甚至不需要保留初始结算请求ID。

您经常会在此类流程的编排背后找到一个流程管理器或一个传奇,而这些流程通常具有自己的持久状态。这是我存储该信息的地方。

答案 1 :(得分:0)

考虑与外部系统的集成通常由两个对象表示和建模。一个在您的问题域(PD)中代表外部系统,另一个在PD外部,代表实际外部系统的接口。外部的那个通常被组织在所谓的“系统交互”(SI)中,并且在许多情况下实际上是由制造商或第三方提供的库或接口。

在你的情况下,我会在SI对象中维护外部id(如果需要),并让SI对象发送消息进行确认。

PD和匹配SI对象通常共享“面向业务”的接口,允许SI对象独立开发。 PD在工厂根据某些配置信息创建之后间接访问SI对象是很常见的。