我设置了一个appsync API,用户可以在其中浏览产品信息并将其添加到“收藏夹”中。他们可以选择配置这些集合,以在集合中有关产品的信息发生更改时通知它们。在后端,产品存储在dynamodb表中,并由运行在EC2实例上的服务定期更新。这些更新是通过直接的dynamodb操作而不是appsync突变执行的。
我可以设置连接到数据库流的lambda函数,如果需要触发子脚本,它将触发一个appsync突变。然后,用户可以订阅以接收那些更新。但是后来我遇到了一个问题:
用户可能在每个馆藏中拥有大量产品,因此订阅馆藏中的每个产品不切实际且成本高昂。首选方法是在集合或用户级别订阅。但是,存在一个脱节,因为突变是基于每个产品而不是每个集合触发的。
解决这一差距的最佳方法是什么?有没有一种方法可以让订阅查询用户的集合并显示产品ID列表,突变结果必须作为通知的一部分?我是否应该向所有用户查询产品属于突变方面的所有集合,并将其作为列表返回?两者似乎效率低下,并且可能会遇到分页问题。
感谢任何输入。