0

我正在阅读Chris 的微服务模式。在他的书中,他举了一些我无法理解的例子section 5.2.1. The problem with fuzzy boundaries

这是在线阅读的链接。有人可以查看第 5.2.1 节并帮助我了解模糊边界的确切问题吗?

我没有清楚地了解以下声明:

在这种情况下,Sam 将订单总额减少了 $X,而 Mary 将订单总额减少了 $Y。结果,订单不再有效,即使应用程序在每个消费者更新后验证订单仍然满足订单最小值

在上述声明中,有人可以解释一下,为什么订单不再有效?

4

1 回答 1

0

在上述声明中,有人可以解释一下,为什么订单不再有效?

Chris Richardson 在此示例中使用的业务问题假设 (a) 系统应确保订单始终有效,以及 (b) 有效订单超过某个最低金额。

最低金额由与特定订单关联的 order_items 的总和确定。

“模糊边界”问题的出现是因为有问题的代码允许 Sam 和 Mary 直接操作 order_items;换句话说,将更改写入订单项目不会锁定订单的其他项目。

如果 Sam 和 Mary 在验证他们的更改之前被迫获得整个订单的锁定,那么您不会有问题;第二个人会看到第一个人所做的更改。

或者,如果您不尝试确保订单项集满足某些属性,则在 order_item 级别锁定会很好。取消对总订单成本的约束,Sam 和 Mary 只需要锁定他们的特定项目。

于 2020-08-08T21:40:38.913 回答