Pular para o conteúdo

apps/messaging-streaming/sns-multi-channel-alerts

074 · Comunicação & Mensageria · ≈ 5 min de estudo

SNS Multi-Channel Alerts

Padrão Event Notification multicanal com AWS SNS: ao detectar uma movimentação suspeita, o banco publica um único alerta que é entregue simultaneamente por e-mail, fila interna e webhook do app mobile.

passos
6
arquivos
6
teste
1
tecnologias
4
Lógica puraTypeScriptBunElysiaAWS SNS
Baixar cartão

Cenário

Um banco digital detecta uma movimentação suspeita em uma conta (valor alto, horário incomum, localização diferente do padrão). Em vez de notificar cada canal manualmente, publica um alerta transaction.suspicious no SNS, que faz fan-out para três canais heterogêneos: o cliente recebe um e-mail, o analista de fraude recebe a mensagem em uma fila interna SQS, e o app mobile recebe um push via webhook HTTP.

Planta

Fluxo
6/6
Transação suspeitaPublisherTópico SNSClienteFila do analista de fraudeWebhook ElysiaPush no appPublish comeventTypee-mailSQSHTTPSassinatura, tópicoe host verificados
6

6 passos — reproduza para seguir o fluxo

Como funciona

6 passos

Um alerta sai em e-mail, SMS e push.

Esconde cada passo: lembre antes de tocar para revelar.

Vocabulário compartilhado

  1. 01

    A regra de fraude marca a transação: valor acima de R$ 5.000,00, horário entre 00:00 e 05:59 ou país diferente do da conta — qualquer motivo gera o alerta

  2. 02

    O publisher faz um único Publish no tópico, com o tipo do evento em MessageAttributes para as filter policies das subscriptions

  3. 03

    O SNS entrega a cada subscriptionE-mail ao cliente, fila SQS do analista de fraude e HTTPS do app

  4. 04

    O webhook verifica a assinatura de toda mensagem com o certificado do SNS — e só busca certificado em host sns.<região>.amazonaws.com

  5. 05

    Mensagem de outro tópico é recusada; SubscriptionConfirmation é confirmada visitando a SubscribeURL, só se ela for do SNS

  6. 06

    Notificação válidaO alerta é desembrulhado de Message e enviado como push ao app

apps/messaging-streaming/sns-multi-channel-alerts

6 arquivos

src/

  • alert_fraud.tsFormato do alerta e regra de fraude
  • publisher_alert.tsMonta o alerta e publica no tópico com atributo de filtro
  • signature_sns.tsVerificação de assinatura do SNS e validação de host
  • webhook_alert.tsSubscriber HTTPS em Elysia: verifica, confirma a subscription e envia o push
  • config_alert.tsVariáveis de ambiente validadas no boot
  • webhook_alert.test.tstesteAssinatura válida, mensagem adulterada, certificado fora do SNS, outro tópico, confirmação, limites da regra e atributo de filtro

Executar · só Bun

  1. cp .env.example .env# variáveis de ambiente
  2. bun install# dependências
  3. bun run webhook# terminal 1 — atrás de um endpoint HTTPS público
  4. bun run demo# terminal 2 — publica o alerta
  5. bun run test# testes unitários

Roda contra a AWS: exige credenciais pela cadeia padrão do SDK e um tópico SNS com as três subscriptions.

Requisitos
Bun

Por que se relacionam

Teste rápido

Qual destes combina com SNS Multi-Channel Alerts?

Próximo projeto · Comunicação & MensageriaSNS-SQS Fanout Notifications
Esc

↑ ↓ navegarEnter abrir191 resultados