gpt4 book ai didi

domain-driven-design - 订单和库存 DDD - 应该在哪里处理分配/保留?

转载 作者:行者123 更新时间:2023-12-04 08:22:25 25 4
gpt4 key购买 nike

我正在尝试将传统的订单处理和库存系统重构为更清晰的面向服务的事件驱动架构。但是,我在决定应该由哪些服务负责库存的预订/分配时遇到了一些困难。

当前系统的简要概述

  • 销售订单是通过第三方系统向我们下达的,但我们不一定有库存的所有订单行。
  • 如果订单商品有库存,我们会立即为该订单分配/保留库存。
  • 但是,如果我们没有足够的库存,那么我们会通过采购系统从供应商处采购库存。
  • 当供应商的 Material 到达时,系统将搜索该 Material 的所有未结销售订单,并为他们预留/分配可用库存,按销售订单日期进行优先排序。 ***

  • 我已经确定了两个我认为需要开发的服务
  • 销售——负责接收销售订单并插入到数据库中。具有域实体,如 Order、OrderLine 等。
  • 库存 - 负责跟踪我们仓库中有多少库存。具有领域实体,例如 StockItem。

  • 但是,由于库存的分配/保留涉及库存和销售,我不确定上面第 2 点中的行为应该放在哪里。

    我欢迎对此提供任何帮助或想法。

    最佳答案

    However, as the allocation/reservation of stock concerns both inventory and sales I am not sure where the behaviour in point 2 above should be put.



    我一直在思考这个问题(纯学术),我目前的结论是预订管理属于库存系统。这将库存来源(从供应商处采购的元素的装载)和库存汇(订单的履行)保持在一起。

    因此,库存系统会缓存自己的填写订单所需的数据副本(允许其自主工作)。一旦得知供应商提供了新库存,即使销售系统碰巧停机维护,它也应该能够取得进展。

    关于domain-driven-design - 订单和库存 DDD - 应该在哪里处理分配/保留?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53108190/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com