Я пытаюсь изобразить реализацию, позволяющую пользователям подписываться на пост-объект.В основном сценарий таков: если у меня есть объект и n пользователей, которые решили получать уведомления об изменениях объекта.В настройках моего сайта у меня есть кластеры JanusGraph, PostgreSQL, Redis, Elastic Search и Cassandra, запущенные для других процессов.Я не могу придумать, как реализовать решение.
Вот решения, которые мне приходили в голову:
Сохранение изменений obj в БД и расчеткогда пользователь входит в систему.
Запись данных: Когда объект публикации изменяется, нажмите на изменение Cassandra.таким образом, кластер Cassandra содержит запись об измененных объектах (или мигрирует на экземпляр HBase, когда служба завершена, а чтение интенсивно).
Считывание данных: Когда пользователь входит в систему, получает список обновлений из кластера Cassandra для своего списка подписок.
Рассчитать изменения объектапри входе пользователя в систему.
Я полагаю, что этот подход очень дорогой, с дополнительным поиском изменений и сводкой изменений после получения списка подписок пользователя.
Предварительное вычисление изменений для объектов и сохранениеУведомление для каждого пользователя.
Я полагаю, что этот метод более дорогой, но полезен только в том случае, если у меня есть реальные ДОРОГИ (поскольку на данный момент для уведомлений не требуется никакого процесса ML, использовать процессор было бы не выгодно).ресурсы для пользователей, которые могут не войти в систему)
Поскольку я впервые пытаюсь решить эту проблему, я действительно не понимаю, как решить эту проблему.Было бы полезно, если кто-то опытный может направить меня.Мне не нужен код, но архитектура решения.
PS.Подарил бы награду за отличный ответ (если есть) после того, как вопрос имеет право на награду.