9 / 15
Как спроектировать сервис уведомлений?
Сервис уведомлений — это конвейер из четырёх ступеней: приём события, политика (можно ли слать этому пользователю сейчас и по какому каналу), очередь на канал, отправка через внешнего провайдера. Каналы отличаются задержкой, ценой и правилами, поэтому каждому нужна своя очередь и свой пул воркеров: SMS не должен ждать, пока разгребётся рассылка писем. Обязательны дедупликация по ключу события (продюсеры повторяют отправку), ограничение частоты на пользователя, отписки и тихие часы — иначе продукт превращается в спам. Главный компромисс — важное против массового: приоритетные очереди дают гарантию доставки кода подтверждения, но усложняют систему и создают риск голодания низкоприоритетных сообщений.