如何处理Appsync订阅/实时数据中的订阅-突变断开连接?

时间:2020-03-11 22:27:50

标签: publish-subscribe aws-appsync graphql-subscriptions

我设置了一个appsync API,用户可以在其中浏览产品信息并将其添加到“收藏夹”中。他们可以选择配置这些集合,以在集合中有关产品的信息发生更改时通知它们。在后端,产品存储在dynamodb表中,并由运行在EC2实例上的服务定期更新。这些更新是通过直接的dynamodb操作而不是appsync突变执行的。

我可以设置连接到数据库流的lambda函数,如果需要触发子脚本,它将触发一个appsync突变。然后,用户可以订阅以接收那些更新。但是后来我遇到了一个问题:

用户可能在每个馆藏中拥有大量产品,因此订阅馆藏中的每个产品不切实际且成本高昂。首选方法是在集合或用户级别订阅。但是,存在一个脱节,因为突变是基于每个产品而不是每个集合触发的。

解决这一差距的最佳方法是什么?有没有一种方法可以让订阅查询用户的集合并显示产品ID列表,突变结果必须作为通知的一部分?我是否应该向所有用户查询产品属于突变方面的所有集合,并将其作为列表返回?两者似乎效率低下,并且可能会遇到分页问题。

感谢任何输入。

0 个答案:

没有答案