AWS AppSync 中用于异步计算的 Graphql 订阅

Graphql subscription for asynchronous computation in AWS AppSync

我希望我的 React Web 应用程序使用 AWS AppSync 订阅接收消息,以根据客户端最初提交的变更请求的类型以外的类型进行异步计算的变更。例如,如果用户投射 "vote",我希望服务器立即响应,但服务器还应该向客户端发送整个数据库的聚合,这可能需要额外的时间来计算或者可以以较慢的速度计算.


我假设 AppSync 会通知客户是否进行 Graphql 订阅,比方说,订阅类型 "Aggregation"。

Q1。如果我编写一个将聚合变更写入 AppSync 的服务器端客户端,Web 客户端是否会收到聚合订阅的消息 API 即使在客户端收到原始投票请求的响应之后?


我假设我需要制作一个服务器端 Graphql 客户端来编写聚合变更。我想这就像一个 http 客户端一样简单。

Q2。当至少一个用户提交了一个突变(投票)时,我如何触发计算聚合的代码?我最好的猜测是我需要使用 Lambda 函数来处理原始突变(投票),但在响应 Web 客户端之前,它将启动另一个进程(可能是不同的 Lambda Fn),最终会改变聚合。


我还没有集成 Apollo 客户端,所以我想暂时保持 Web 客户端代码简单。

如果我理解你的问题,你想要一些东西来启动聚合过程,然后在有新聚合时收到订阅消息。要开始聚合,您可以使用任意数量的东西,具体取决于您存储数据的位置。例如,如果您使用的是 DynamoDB,则可以在投票发生变化时使用 DynamoDB 流启动聚合。或者,如您所说,您可以启动 lambda 或其他流程以响应订阅消息以进行投票。这些解决方案中的任何一个都需要进行修改以写入聚合,这将导致向订阅聚合的客户端发送订阅消息。