SQS desacopla sistemas mediante mensajes persistentes en una cola. Evita que una aplicación tenga que procesar todas las tareas de manera síncrona.

Por qué importa en una infraestructura moderna

Un pedido genera un evento que entra en la cola. Un trabajador lo procesa y elimina el mensaje cuando acaba. Si falla, el mensaje puede volver a estar disponible. La cola de mensajes fallidos (DLQ) permite investigar mensajes que fallan reiteradamente.

Cómo utilizarlo correctamente

Configura correctamente el tiempo de visibilidad, retención, número de recepciones y redrive. Al integrar SQS con Lambda, revisa tiempos de ejecución y procesamiento por lotes. Monitoriza el número de mensajes pendientes y la edad de los más antiguos. Trata los mensajes como potencialmente duplicados.

¿Cuándo conviene utilizar Amazon SQS?

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 SQS.

Ejemplo: procesar mil imágenes sin bloquear una web

Una aplicación permite cargar imágenes y genera un trabajo de procesamiento por cada archivo. Si ejecuta todas las conversiones dentro de la petición HTTP, aumentan los tiempos de espera y los errores. Con SQS, la aplicación confirma la recepción y coloca trabajos pequeños en una cola; uno o varios consumidores procesan después cada archivo. El mensaje debe guardar un identificador y una referencia segura al fichero, no todo el contenido binario.

Aplicación → cola SQS → Lambda procesadora
                     |
                  DLQ de fallos

Visibilidad y borrado de mensajes

Recibir un mensaje no lo elimina. Durante el visibility timeout el mensaje queda oculto temporalmente; tras procesarlo con éxito se elimina. Si un consumidor falla, vuelve a estar disponible. Esto significa que una tarea puede ejecutarse más de una vez, por lo que hay que hacer operaciones idempotentes, por ejemplo comprobando en una base de datos el estado del trabajo con su identificador.

Configurar una DLQ

Una dead-letter queue recoge mensajes que exceden el número de intentos definido en la política de redirección. Es útil cuando un fichero corrupto provoca un error repetible. La DLQ no arregla el problema: hay que revisar su contenido, corregir la causa y decidir si se reintroducen mensajes. Añade una alarma cuando aparezcan mensajes, y considera retención y cifrado de datos sensibles.

Estándar frente a FIFO

Usa Estándar cuando buscas alto rendimiento y puedes tolerar entregas duplicadas y procesamiento desordenado. FIFO puede ser útil para operaciones cuya secuencia importa y permite capacidades de deduplicación, con sus propios límites. No presupongas que FIFO convierte cualquier flujo distribuido en exactamente una ejecución del código.

Parámetros con Lambda

Para una asignación de eventos SQS→Lambda, AWS recomienda que el tiempo de visibilidad sea al menos seis veces el timeout de Lambda, más la ventana de agrupación cuando corresponda. Configura respuesta parcial de lotes (ReportBatchItemFailures) cuando quieras reintentar solo los mensajes fallidos; de otro modo, un error puede reenviar el lote completo. Consulta la guía oficial.

Costes y observabilidad

Los cargos dependen del número y tipo de solicitudes, transferencia y otros factores. También debes contar ejecuciones de Lambda y almacenamiento o cifrado asociados. Supervisa la edad del mensaje más antiguo, el número de mensajes visibles y las DLQ. Una cola que crece continuamente suele indicar consumidores insuficientes o fallos repetidos.

Guías relacionadas de Laraflex

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

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