Как реализовать подписку на модель / ресурс базы данных? - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь изобразить реализацию, позволяющую пользователям подписываться на пост-объект.В основном сценарий таков: если у меня есть объект и n пользователей, которые решили получать уведомления об изменениях объекта.В настройках моего сайта у меня есть кластеры JanusGraph, PostgreSQL, Redis, Elastic Search и Cassandra, запущенные для других процессов.Я не могу придумать, как реализовать решение.

Вот решения, которые мне приходили в голову:

  1. Сохранение изменений obj в БД и расчеткогда пользователь входит в систему.

    Запись данных: Когда объект публикации изменяется, нажмите на изменение Cassandra.таким образом, кластер Cassandra содержит запись об измененных объектах (или мигрирует на экземпляр HBase, когда служба завершена, а чтение интенсивно).

    Считывание данных: Когда пользователь входит в систему, получает список обновлений из кластера Cassandra для своего списка подписок.

  2. Рассчитать изменения объектапри входе пользователя в систему.

    Я полагаю, что этот подход очень дорогой, с дополнительным поиском изменений и сводкой изменений после получения списка подписок пользователя.

  3. Предварительное вычисление изменений для объектов и сохранениеУведомление для каждого пользователя.

    Я полагаю, что этот метод более дорогой, но полезен только в том случае, если у меня есть реальные ДОРОГИ (поскольку на данный момент для уведомлений не требуется никакого процесса ML, использовать процессор было бы не выгодно).ресурсы для пользователей, которые могут не войти в систему)

Поскольку я впервые пытаюсь решить эту проблему, я действительно не понимаю, как решить эту проблему.Было бы полезно, если кто-то опытный может направить меня.Мне не нужен код, но архитектура решения.

PS.Подарил бы награду за отличный ответ (если есть) после того, как вопрос имеет право на награду.

...