Грубо говоря есть некоторый набор событий (действий) при которых могут генерироваться уведомления, например упоминание никнейма в сообщении. План действий примерно такой.
- юзер отправляет сообщение
- некий парсер проверяет наличие никнеймов
- если никнеймы есть, то проверяет подписаны ли найденные юзеры на уведомления такого типа, когда их упоминают в сообщениях
- если подписаны, то в отведенную табличку для уведомлений записывается уведомление для конкретного юзера
Далее, когда упомянутый, в сообщении, юзер посетит сайт, то специальный отведенный механизм сделает запрос бд на наличие уведомлений (это может быть некий кеш). Если есть, то выведет уведомление. А когда юзер перейдет по нему, то отметит это уведомление в бд просмотренным.