SNS publica eventos en un tema y los distribuye a suscriptores. No almacena el trabajo para procesamiento diferido de la misma forma que SQS.

Por qué importa en una infraestructura moderna

Una aplicación puede publicar en SNS y entregar a una o varias colas. Es una buena forma de desacoplar el productor de los consumidores. Un tema SNS no envía automáticamente mensajes de WhatsApp; eso requiere integrar el servicio apropiado.

Cómo utilizarlo correctamente

Revisa la diferencia entre tema Estándar y FIFO, suscripción, política del tema y permisos de la cola. En SNS→SQS la política de SQS debe autorizar al tema concreto a enviar mensajes. Comprueba que las entregas pueden repetirse y prepara consumidores idempotentes.

¿Cuándo conviene utilizar Amazon SNS?

Es útil cuando resuelve una necesidad real de arquitectura; incluir todos los servicios en una plantilla solo porque existen añade complejidad, permisos y costes. Empieza con el flujo más pequeño posible, documenta las responsabilidades, trabaja primero en pruebas y crea alarmas de coste y operación.

Infraestructura como código con CloudFormation

Cuando haya que repetir el despliegue, usa una plantilla versionada que describa los recursos pertinentes y sus relaciones. Revisa los permisos antes de ejecutar cambios. Para aprender se puede empezar desde la consola de AWS y pasar a AWS CLI después.

Artículos de esta serie

Referencia oficial

Documentación de AWS sobre Amazon SNS.

Ejemplo realista: una compra, dos departamentos

Un comercio confirma un pedido y publica un único evento pedido.confirmado. El servicio de logística debe preparar el envío y el de análisis registrar la venta. Sin SNS, la aplicación de compras tendría que llamar directamente a los dos servicios y gestionar todos sus errores. Con SNS, publica una vez y cada consumidor recibe el evento mediante su propia suscripción, por ejemplo hacia dos colas SQS independientes.

Servicio de pedidos
        |
  SNS: pedidos
     /     \
SQS: envio  SQS: analitica
    |             |
 Lambda A      Lambda B

Este patrón se conoce como fan-out. Si el área de estadísticas cae, logística puede seguir procesando sus eventos. El emisor no debería incluir datos personales innecesarios en los mensajes.

Qué guarda SNS y qué no guarda

Un tema SNS es un canal de distribución, no una cola duradera equivalente a SQS. El servicio ofrece políticas de entrega, reintentos y opciones específicas de retención según el tipo de destino, pero para procesamiento diferido con control explícito de reintentos suele resultar mejor SNS→SQS. Al crear una suscripción a SQS, la cola debe autorizar al tema SNS mediante una política con aws:SourceArn para impedir emisores no previstos.

Mensajes duplicados, orden y filtros

Los temas Estándar admiten entrega al menos una vez y no prometen orden estricto. Por ello, un consumidor no debe generar dos facturas por recibir dos veces el mismo identificador de evento. Los filtros de suscripción permiten decidir qué eventos debe recibir cada consumidor según atributos o cuerpo, con límites y semántica que conviene comprobar en la documentación oficial. FIFO puede ayudar en casos que exigen orden y deduplicación, pero tiene requisitos de compatibilidad y no debe elegirse automáticamente.

Publicar con AWS CLI: ejemplo ilustrativo

aws sns publish \
  --topic-arn arn:aws:sns:eu-west-1:111122223333:demo-events \
  --message '{"id":"evt-123","type":"pedido.confirmado"}'

La cuenta y el tema son ficticios y el comando requiere credenciales IAM autorizadas. El evento debe evitar secretos y datos personales. El identificador único facilita la idempotencia de los consumidores.

Cuándo conviene SNS y qué coste observar

SNS tiene sentido cuando un evento debe distribuirse a varios destinos desacoplados. Si solo se necesita un único consumidor que procese trabajo a su ritmo, una cola SQS directa puede ser suficiente. Revisa cargos por solicitudes, entregas, tamaño y tipo de destino, además de los servicios conectados. Monitoriza errores de entrega y configura alarmas relevantes.

Guías relacionadas de Laraflex

CloudFormation · Amazon SQS · AWS Lambda · AWS IAM · AWS KMS · AWS Secrets Manager

Consulta la documentación oficial de AWS para ampliar y contrastar los detalles técnicos.