Saltar al contenido
CLF-C02Sesión 12 · Mensajería y datos

Acoplamiento débil

Si ya sabes qué es una cola de mensajes y qué significa desacoplar, salta a Amazon SQS.

Dos componentes están fuertemente acoplados cuando uno llama al otro y espera su respuesta: si el segundo se cae o se satura, el primero falla con él. Es lo que pasa en la pregunta 1 del inicio: sin facturación, la tienda pierde los pedidos o deja al cliente esperando.

En el acoplamiento débil, el primero deja un mensaje en un intermediario y sigue con lo suyo. Quien lo envía es el productor; quien lo procesa, el consumidor. La comunicación es asíncrona: el consumidor lo procesa cuando puede, aunque esté caído un rato. Así se responde la pregunta 1: un intermediario guarda los pedidos hasta que facturación vuelve. Es la base de los microservicios: una aplicación partida en servicios pequeños que se despliegan y escalan por separado. En AWS, ese intermediario puede ser una cola, un tema o un bus de eventos.

Amazon SQS

Qué es: Amazon Simple Queue Service (SQS) es una cola de mensajes administrada: el productor deja mensajes y el consumidor los saca cuando puede.

  • Sondeo (pull): el consumidor pregunta a la cola si hay mensajes; SQS nunca se los empuja. Lambda puede sondear la cola por ti y ejecutar tu función con cada lote.
  • Recibir y borrar: leer un mensaje no lo borra. Queda oculto durante el tiempo de visibilidad (30 segundos por defecto); si el consumidor no lo borra antes, reaparece para otro intento.
  • Retención: los mensajes esperan 4 días por defecto, configurable de 1 minuto a 14 días. Una cola de mensajes fallidos (dead-letter queue) aparta los que fallan una y otra vez.
  • Precio: por solicitud. El primer millón de solicitudes al mes es siempre gratis.

Analogía: las comandas de la cocina de un restaurante. El mesero cuelga el pedido y vuelve a la sala; cada cocinero toma una comanda cuando se libera. Dónde falla la analogía: una comanda tomada sale del riel. En SQS, el mensaje recibido sigue en la cola, oculto; si el consumidor no lo borra a tiempo, vuelve a aparecer.

1, la tienda envía el pedido a la cola SQS. 2, facturación sondea la cola cuando puede y 3, borra el mensaje al terminar.

Ejemplo real: Boletos Faro recibe 50.000 pedidos en diez minutos cuando abre la venta de un concierto. La tienda deja cada pedido en una cola SQS y responde al instante. Facturación los procesa a su ritmo y, con Auto Scaling, suma instancias si crece la cola.

Úsalo cuando: quieras absorber picos, repartir trabajo entre varios consumidores o que un componente siga funcionando aunque el otro caiga. No lo uses cuando: necesites la respuesta en el acto, como validar una tarjeta mientras el cliente espera, o que varios sistemas reciban la misma copia del mensaje.

Criterio Cola estándar Cola FIFO
Orden El mejor posible, no garantizado Exacto, el de llegada
Duplicados Puede entregar un mensaje dos veces Procesa cada mensaje una vez
Rendimiento Casi ilimitado Menor, con un tope por segundo
Úsala para Volumen alto, orden irrelevante Pasos que deben seguir su orden

En el examen: “desacoplar”, “cola”, “absorber picos”, “procesar de forma asíncrona” o “que los mensajes no se pierdan si el consumidor falla” es SQS. “Orden estricto” o “sin duplicados” es una cola FIFO.

Trampa común: una cola no reparte copias. Cada mensaje lo procesa un solo consumidor y luego se borra. Si tres sistemas necesitan el mismo pedido, hace falta el servicio de la sección siguiente.

138