我的公司有一个内部 API,其中包含大量事实数据(截至目前为 80MM 记录)。我有四个定期与我联系的客户。主要的 API 调用将新项目添加到数据库中,验证其真实性,然后根据提交的项目返回结构化的分析数据。
随着时间的推移,当我们确定更多与项目相关联的数据时,我需要能够让我的客户知道记录已更改。
现在我有一个/recent
端点,它返回自$timestamp
. 这对于小型数据集来说很好,但考虑到大量事务,很容易得到超过一百万个项目的 /recent 数据集,尤其是在导入大量数据的情况下。
我的另一个想法是使用 web 挂钩将数据推送到客户端,但是问题变成了推送太多数据。我的客户不一定需要对每个更改的项目进行更新——也许他们只需要他们已经提交的项目。
问题不在于代码,而在于设计模式或代码策略:
有哪些最佳策略可以通知我的客户更新的记录,而不会向我的客户发出不必要的请求或在民意调查中提供数百万条记录?