我正在致力于DDD项目,我目前主要关注两个受损的环境,订单和仓库。如何解决Order和Warehouse有界上下文依赖关系?
令我困惑的是以下情况: 订单跟踪所有下订单,仓库跟踪所有可用库存。如果用户对某个产品项目下了一个订单,这意味着仓库中该产品的一个更少的项目。我简单地说明了这一过程,所以请耐心等待。
由于两个领域模型被放置在不同的BC内,我目前依靠最终的一致性即。在一件物品被出售之后,它最终会从仓库中移出。
不幸的是,这种情况导致了另一个用户可能同时进行同一项目的另一个订单的问题场景,并且它会显示为可用,直到最终的一致性踢球为止。这是领域专家无法接受的。
所以IMO我坚持两个选项
- 合并订单和库存(至少部分有关产品 库存,仓库可用单位)为BC一个
- 有秩序BC(或微服务,如果您希望)取决于仓库BC(微服务)以便拉动现有产品单元 可用
哪个选项确实跟随DDD模板?有另一种出路吗?
格雷格扬有一个有趣的观察:当你正在考虑从亚马逊的订单,你不关心该项目是否有货;你关心的是它何时可能到达。 https://www.youtube.com/watch?v=LDW0QWie21s&t=35m01s – VoiceOfUnreason