系统设计 - 亚马逊产品结帐流程

时间:2018-03-03 16:50:22

标签: architecture

我正在设计一个系统,该系统具有与亚马逊产品结帐相同的逻辑。让我参考亚马逊来解释这个问题。

新发布的产品,比如手机,在亚马逊的库存有限,比如1000个单位。它将于今天上午9点发布。现在,要在亚马逊购买任何产品,当您在产品页面中时,可以单击“立即购买”按钮。这将带您进入结帐页面(其中包含收据以及详细列出的送货地址和付款方式)。结帐页面具有“立即付款”按钮,点击该按钮将调用支付网关以开始支付过程。 现在我只想要支付1000个单位而不是更多。 这也应该记住,点击“立即购买”的前1000人不会最终付款,即使他们中的许多人开始付款流程,他们的付款可能会失败并且必须重新进行。 如何设计这样的系统,以便在不保证库存可用性的情况下不启动付款。假设它是一个销售,并且在产品的第一分钟内有100X人正在访问该网站。 (X =可用单位数量)

1 个答案:

答案 0 :(得分:0)

  1. 以交易方式创建订单,一旦他们点击"立即购买"按钮
  2. 有一个过程可以解决所有从未完成的过程。比如说,"立即购买"单击按钮,将产品释放回池中,取消订单并增加可用库存。
  3. 这将导致潜在的销售损失。另一种方法是选择后续步骤减少可用库存,减少销售损失,但更多可能无法完成订单的愤怒客户。