@gekm

Что использовать для оповещений о новых сообщениях по email?

Есть блог.
Есть модель с 3мя классами, каждый из которых является подкатегорией предыдущего. Четвертый класс - посты.
Объекты структурированы примерно так:
├───Category1
│ ├───Subcategory11
│ │ ├───subsubcategory111
│ │ ├───subsubcategory112
│ │ └───subsubcategory113
│ ├───Subcategory12
│ │ ├───subsubcategory121
│ │ ├───subsubcategory122
│ │ └───subsubcategory123
│ └───Subcategory13
│ ├───subsubcategory131
│ │ ├───post1311
│ │ ├───post1312
│ │ └───post1313
│ ├───subsubcategory132
│ │ ├───post1321
│ │ ├───post1322
│ │ └───post1323
│ └───subsubcategory133
│ ├───post1331
│ ├───post1332
│ └───post1333


Необходимо реализовать механизм оповещений по email о новых категориях\подкатегориях\постах следующим образом:
- пользователь может подписаться на категорию (добавить в избранное) - тогда он будет получать уведомления обо всех движениях по самой категории и её дочерних объектах (подкатегориях, постах - при добавлении\редактировании\удалении оных)
- пользователь может подписаться на подкатегорию (добавить в избранное) - тогда он будет получать уведомления обо всех движениях по этой подкатегории и её дочерних объектах (постах - при добавлении\редактировании\удалении оных)
- пользователь может подписаться на пост (добавить в избранное) - тогда он будет получать уведомления обо всех движениях (редактирование\удаление\комментирование) по этому посту.

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

Подскажите пожалуйста, как это лучше реализовать?
1. С помощью штатных средств django - syndication feed framework или для данной задачи есть более подходящие решения? При таком решении пользователю нужно будет добавлять себе несколько лент? Либо есть возможность собрать одну ленту из необходимых категорий\подкатегорий\объектов?
2. Может быть проще сделать что-то вроде механизма подписки, только не по пользователям, а по категориям\подкатегориям объектов\самим объектам? К примеру, на тостере здОрово реализована кастомизация оповещений, хотя не знаю на чем написан тостер...
  • Вопрос задан
  • 36 просмотров
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Мне кажется здесь нужна колоночная база данных типа clickhouse, tarantool, hbase или подобных. В ней делаются две таблицы с подписками пользователя и с топиками подписок пользователей. И нужна какая-то шина сообщений типа kafka. Все изменения сыпятся в кафку, из нее подхватываются и по выборке подписчиков из строки топика заносятся в строки соответствующих пользователей. При заходе пользователь считывает свою запись с установленными нотификациями, которые затем и показываются.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы