我有一项销售服务,它在确认销售时接受付款并引发事件。
我有一个订单服务,它使用这个事件并记录作为交易的一部分购买的所有东西。因此,在确认销售后不久,该购买信息最终是一致的。
这种架构的好处是销售服务对其有巨大的需求量,因此使其尽可能轻量级是理想的。
问题是......当确认销售时,销售服务需要知道已经购买了什么,然后才能为该客户进行任何进一步的交易。这是因为他们可以购买的物品数量等以及其他限制条件存在限制。它不能在任何时候依赖订单服务来提供此信息,因为处理订单时可能存在积压。
我可以通过让销售服务在确认销售后立即记录所有这些信息来解决这个问题,但是我会在销售服务中引入更多的逻辑和处理。除了编写事件之外,它现在还计算作为订单一部分购买的所有东西并将其全部推送到其数据库中。
有没有解决这些类型问题的模式?我是否实际上被迫让销售服务也了解如何处理和存储订单?