Waterfall API调用的最佳架构模式

时间:2019-03-20 21:25:30

标签: javascript node.js amazon-web-services aws-lambda amazon-sqs

我正在尝试建立一种架构,在该架构中,我的客户具有订单和发货历史。我正在尝试使用API​​调用将该数据导入到另一个系统,但是问题是我无法使用单个API调用导入所有客户数据。我正在使用Promise创建一个瀑布式模式,在该模式中,一旦导入了客户信息,便发出了订单导入请求,然后发出了货物导入API请求。

我正在尝试利用AWS Lambda,SQS,Cloudwatch等进行这些连接。我看到的问题与顺序API调用有关。

由于要进行三个API调用来导入客户数据,因此连接失败的错误率以及手动管理和日志跟踪都成为一个大问题。如果说订单API调用失败,那么就不会发生发货API调用。

我对如何简化或自动进行日志跟踪感到困惑。如果任何api连接发生故障,如何减少错误率以及如何迁移数据。我可以利用其他任何AWS服务吗?还是我可以单独用于订单和装运的任何其他SQS队列?

谢谢。

1 个答案:

答案 0 :(得分:1)

如评论中所述,听起来您正在构建工作流,并正在寻找Step Functions

您基本上将工作流程分解为状态机,在“步骤功能”中设计该状态机(状态之间的taskstransitions),它将为您管理状态。通常,任务将在AWS Lambda中运行。

通常,API调用的实现将只是调用以启动执行您要启动的工作流程的特定步骤功能。

在您的情况下,这是一个非常线性的状态机-呼叫服务A,然后呼叫B,然后呼叫C。您还要定义在错误情况下发生的哪种过渡和活动(通知您的客户?放弃吗?其他?)。