Definición: Servicio de mensajeria pub/sub completamente gestionado para distribuir notificaciones a multiples suscriptores simultaneamente.
— Fuente: NERVICO, Consultoría de Desarrollo de Producto
Que es Amazon SNS
Amazon SNS (Simple Notification Service) es un servicio de mensajeria pub/sub (publicacion/suscripcion) completamente gestionado por AWS. Permite que un publicador envie un mensaje a un topic y que multiples suscriptores lo reciban simultaneamente a traves de diferentes canales: colas SQS, funciones Lambda, endpoints HTTP, emails o notificaciones push a dispositivos moviles. A diferencia de una cola de mensajes donde un solo consumidor procesa cada mensaje, SNS distribuye cada mensaje a todos los suscriptores registrados en el topic.
Como funciona
El patron pub/sub de SNS se organiza alrededor de topics. Un publicador envia un mensaje a un topic sin conocer a los suscriptores. SNS se encarga de distribuir ese mensaje a todos los endpoints suscritos de forma paralela. Los suscriptores pueden filtrar mensajes mediante politicas de filtrado basadas en atributos del mensaje, recibiendo solo los que les interesan. SNS soporta mensajes de hasta 256 KB y puede entregar millones de mensajes por segundo. Para mensajes que requieren orden y deduplicacion, SNS ofrece topics FIFO que se integran directamente con colas SQS FIFO.
Por que importa
En arquitecturas distribuidas, un evento frecuentemente necesita desencadenar acciones en multiples servicios. Sin un servicio pub/sub, el publicador tendria que conocer y llamar individualmente a cada servicio interesado, creando acoplamiento directo. SNS desacopla completamente al publicador de los suscriptores: cuando un nuevo servicio necesita reaccionar a un evento, simplemente se suscribe al topic sin modificar el publicador. Este patron reduce la complejidad del sistema y facilita la extension de funcionalidades sin modificar codigo existente.
Ejemplo practico
Una plataforma de logistica publica un evento en un topic SNS cada vez que un paquete cambia de estado. Tres suscriptores reciben el mensaje simultaneamente: una funcion Lambda actualiza la base de datos de tracking, una cola SQS alimenta el servicio de notificaciones que envia SMS al cliente, y un endpoint HTTP envia la actualizacion al sistema ERP del almacen. Cuando el equipo necesita agregar alertas internas por Slack, simplemente suscribe un nuevo endpoint al topic sin tocar el servicio de logistica.