# Amazon SQS

> Una fila de espera para mensajes entre programas, para que ninguno se pierda.

- Nivel: Intermedio
- Temas: AWS
- URL: https://tidbit.legios.com.ar/es/amazon-sqs/
- En inglés: [Amazon SQS](https://tidbit.legios.com.ar/amazon-sqs/)

**Amazon SQS** (Simple Queue Service) es una cola de mensajes administrada. Un programa (el productor) deja mensajes en la cola; otro (el consumidor) los va tomando cuando está listo. Los dos nunca hablan directamente y ni siquiera necesitan estar corriendo al mismo tiempo.

Resuelve un problema muy común: una parte del sistema es más rápida que otra. Una tienda online recibe 5.000 pedidos por minuto en una liquidación, pero el servicio que imprime las etiquetas de envío procesa 50 por minuto. Con una cola en el medio, los pedidos esperan en fila en vez de fallar, y la impresora de etiquetas los va sacando a su ritmo.

SQS guarda cada mensaje hasta que un consumidor lo borra. Si el consumidor se cae a mitad de camino, el mensaje vuelve a hacerse visible después de un tiempo y otro consumidor lo reintenta. Los que fallan demasiadas veces van a una **dead-letter queue** para que una persona los revise. Se combina muy bien con AWS Lambda: una función se puede disparar por cada lote de mensajes que llega.

Hay dos tipos: colas estándar (muchísimo caudal, orden casi siempre respetado, un mensaje puede llegar dos veces muy de vez en cuando) y colas FIFO (orden estricto, sin duplicados, menos caudal).

## Una analogía

El dispensador de números de una fiambrería. Cada cliente saca un ticket y espera; el empleado llama al siguiente cuando se desocupa. Nadie se pierde, aunque la fila sea larga.

## Para quedarse

- Productor y consumidor están desacoplados: ninguno necesita conocer al otro ni estar online al mismo tiempo.
- Un mensaje queda en la cola hasta que alguien lo borra explícitamente, así que un consumidor caído no lo pierde.
- Las colas estándar priorizan caudal; las FIFO garantizan orden y cero duplicados.
- Un mensaje puede esperar en la cola hasta 14 días (4 por defecto).

## Para seguir leyendo

- [¿Qué es Amazon SQS? (documentación oficial)](https://docs.aws.amazon.com/es_es/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)
- [Página de Amazon SQS](https://aws.amazon.com/es/sqs/)

## Términos relacionados

- [AWS Lambda](https://tidbit.legios.com.ar/es/aws-lambda/): Correr un pedazo de código solo cuando pasa algo, sin ningún servidor que administrar.
