У меня есть внутренний API для моей компании, который содержит большое количество фактических данных (80MM записей на данный момент). У меня есть четыре клиента, которые подключаются ко мне на регулярной основе. Основной вызов API добавляет новый элемент в базу данных, проверяет его подлинность и затем возвращает структурированные, проанализированные данные на основе представленного элемента.Как лучше уведомлять клиентов об изменениях данных через API
Со временем, поскольку мы идентифицируем больше данных, которые должны быть связаны с элементом, мне нужно, чтобы мои клиенты знали, что записи изменились.
Прямо сейчас у меня есть конечная точка /recent
, которая возвращает все записи, которые изменились с $timestamp
. Это отлично подходит для небольших наборов данных, но, учитывая большое количество транзакций, можно легко завершить работу с недавним набором данных более миллиона элементов, особенно если есть большой импорт данных.
Еще одна идея, которую я имел, заключалась в том, чтобы использовать веб-крючки для передачи данных клиентам, но тогда проблема становится толкающей слишком много данных. Мои клиенты не обязательно нуждаются в обновлениях для каждого измененного элемента - возможно, им нужны только те, которые они уже отправили.
вопрос меньше о коде и больше о шаблонах проектирования или стратегии коды:
Каковы оптимальные стратегии для уведомления своих клиентов обновленных записей без затопления своих клиентов с ненужными запросами или предоставления миллионов записей на голосование?