AWS AppSync中异步计算的Graphql订阅

AWS AppSync中异步计算的Graphql订阅,graphql,aws-appsync,graphql-subscriptions,Graphql,Aws Appsync,Graphql Subscriptions,我希望我的React web应用程序使用AWS AppSync订阅接收消息,这些订阅是基于客户端最初提交的变异请求以外的类型的变异异步计算的。例如,如果用户进行投票,我希望服务器立即响应,但服务器还应向客户端发送整个数据库的聚合,这些聚合可能需要额外的时间来计算,或者计算速度较慢 我假设AppSync将通知客户机是否订阅了Graphql,比如类型聚合 问题1。如果我编写了一个服务器端客户端,即使在客户端收到来自原始投票请求的响应后,该客户端仍将聚合变异写入AppSync API,那么web客户端

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

我假设AppSync将通知客户机是否订阅了Graphql,比如类型聚合

问题1。如果我编写了一个服务器端客户端,即使在客户端收到来自原始投票请求的响应后,该客户端仍将聚合变异写入AppSync API,那么web客户端是否会收到聚合订阅的消息

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

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


我还没有集成Apollo客户端,所以现在我希望web客户端代码保持简单。

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