oop - 一个实体,不同数据库的不同限界上下文中的多个模型

标签 oop domain-driven-design cqrs

假设我们有一个 Order 实体,它将在 2 个 diff 中建模。电子商务应用程序中的 BC。

第一个 BC 是下单。该 BC 负责收集客户从我们不同网站下的所有订单,对其进行验证并按状态为已下达已拒绝的订单填充其相应的数据库。

BC 2 是装运。这使得仓库中的员工可以在订单离开仓库后在其数据库中将订单标记为已发货

现在,由于两个 BC 使用不同的数据库,这些数据库一开始都是空的,因此需要将已下订单通知 Shipment BC,以便当扫描仪想要发货一个订单,它将位于发货 BC 中。

我最初的方法是在订单放入订单放置 BC并让装运 BC订阅后创建一个域事件该事件并在其数据库中为每个下订单创建一个相应的 Order 实体。

但是,我无法阻止自己在不同数据库之间复制数据的感觉。

我的第二种方法是每次为Order实体Shipped时询问Order Placement,但我仍然需要维护订单状态,以防发货失败。

是否有更好的方法从 DDD POV 来解决这一切?

最佳答案

我认为你的第一种方法非常好。您没有复制数据,因为正如您已经注意到的那样,该数据来自另一个上下文。相同的数据在不同的上下文中意味着不同的事情。

关于oop - 一个实体,不同数据库的不同限界上下文中的多个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25720992/

相关文章:

python - 替代 __del__ 来获得最终结果并终止类中的进程?

C++ 新手 : proper way to avoid redundant object copies when initializing?

c# - DDD : Referencing non root Entities by Id from other Aggregates?

domain-driven-design - 将 CQRS 应用于库存管理

Scala CQRS 框架

sql - 在违反 View 上的唯一约束时插入时将增量整数附加到数据库表行

java - Java中的继承,访问子方法并使用父类数组

datatable - 对于搜索/报告数据表或 DTO 或域类,您更喜欢哪一个?

cqrs - 在 CQRS 中将 MicroORM 用于读取层

php - 如何在 php 中实现享元模式?