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 у подписанных очередей.