Я играл с Redis и Faye для системы, которую я создаю. Я все еще не уверен, являются ли они лучшим выбором для моего конкретного приложения.
Моя цель
Каждый пользователь может публиковать сообщения в канале/теме и получать сообщения из тем, на которые он подписан. Темы должны иметь иерархическую структуру (т. е. тема «B» является подтемой темы «A», поэтому у нас есть отношения «A-> B» между темами). Если пользователь подписывается на подтему, он просто получает сообщения из этой темы (он подписался на "B" в "A->B" и просто получает сообщения в "B"). Если пользователь подписывается на основную тему, он получает все сообщения из подтем (он подписался на «А» и получает сообщения для «Б» и других подтем «А»).
Пользователи должны получать уведомления на свои мобильные устройства с помощью Push-уведомлений (Android/Apple).
Что я пытался сделать
Я попытался имитировать иерархию, публикуя сообщения во все каналы иерархии. Допустим, у нас есть такая иерархия: "A->B->C" "A->B->D", так что B имеет две подтемы.
Публикация на C означает для издателя отправку сообщений на каналы "A", "B" и "C". Публикация в D означает для издателя отправку сообщений в каналы "A", "B" и "D".
Проблемы
Есть ли лучший способ сделать это, используя Faye при поддержке Redis или просто Redis? Если это лучший подход, как он масштабируется с увеличением числа издателей/подписчиков и тем? Как добиться обновления потока через мобильный push API?