intermediate
SNS
Рассылайте уведомления в очереди, функции, HTTP endpoints или email через topic-based publish-subscribe.
SNS — управляемый pub/sub: рассылает сообщения в очереди SQS, Lambda, HTTP/S endpoints, email и SMS. Издатель шлёт в topic; подписчики получают независимые копии с учётом policy подписки.
Типичный Node.js-поток: доменное событие в SNS, несколько очередей SQS подписаны для billing, analytics и уведомлений — каждый consumer масштабируется отдельно. Message attributes позволяют фильтровать маршрутизацию без отдельного topic на consumer.
| vs SQS | SNS | |--------|-----| | Модель доставки | Широковещание one-to-many | | Персистентность | Push подписчикам; с SQS — буферизация | | Порядок | FIFO topics для строгих последовательностей |
Шифруйте topics через KMS при чувствительных payload. Подтверждайте HTTP-подписки, чтобы не оставить открытый webhook.
На интервью: паттерн SNS + SQS fan-out, filter policies, retry HTTP-подписок и когда EventBridge заменяет SNS для маршрутизации событий.
Типовые ошибки: Lambda напрямую без DLQ на async invoke; неподтверждённые HTTP endpoints; один огромный topic без фильтров — лишние вызовы.
Компромисс — простая семантика broadcast против менее надёжной доставки без буфера SQS downstream.
Чеклист:
- Fan-out в SQS для надёжных replayable consumers.
- Filter policies против шума и лишних затрат.
- KMS и publish roles по least privilege.
- Мониторинг failed deliveries и DLQ у подписанных очередей.