Saltar al contenido
aprendeaws.dev

Módulo 9 · Eventos, colas y mensajería/Lección 54

Desacoplar: síncrono y asíncrono

Si una parte se cae, ¿se cae todo? Cómo las colas y los eventos hacen que un sistema aguante.

Al terminar podrás

  • →Diferenciar comunicación síncrona y asíncrona
  • →Explicar qué es un sistema desacoplado y por qué resiste mejor
  • →Elegir entre cola, notificación y bus de eventos

Un sistema real tiene muchas partes: la tienda recibe el pedido, otra parte cobra, otra descuenta inventario, otra envía el correo. La pregunta clave es qué pasa cuando una de esas partes se pone lenta o se cae. Si la tienda entera deja de vender porque el servicio de correos falla, el sistema está acoplado.

Desacoplar es poner algo en medio para que las partes no dependan de que la otra esté disponible justo en ese segundo. En AWS, ese algo suele ser una cola, un tema de notificaciones o un bus de eventos.

Síncrono y asíncrono

En una llamada síncrona, quien llama espera la respuesta antes de seguir. Es como pedir en un mostrador: no te mueves hasta que te entregan. Sirve cuando necesitas el resultado ya, por ejemplo, para mostrar el saldo de una cuenta.

En una comunicación asíncrona, quien envía deja el mensaje y sigue. El trabajo se hace después, en otro proceso. Sirve para todo lo que no tiene que estar listo antes de responder al usuario: enviar un correo, generar un PDF, actualizar estadísticas.

CriterioAcoplado (síncrono)Desacoplado (asíncrono)
Si el destino se caeLa petición falla y el error se propaga hacia atrásLos mensajes esperan hasta que el destino vuelva
Ante un pico de tráficoEl destino recibe todo de golpe y puede caerseLa cola absorbe el pico y el destino procesa a su ritmo
EscalarAmbas partes deben escalar juntasCada parte escala por su cuenta
Cambiar una parteHay que tocar a quien la llamaMientras el mensaje no cambie, el resto no se entera
Lo que cuestaEs más simple de seguir y depurarEl resultado no es inmediato; hay que diseñar reintentos y duplicados

Por qué un sistema desacoplado resiste mejor

  • Aísla las fallas: si el servicio de correos se cae una hora, los pedidos se siguen recibiendo. Los correos salen cuando vuelva.
  • Amortigua los picos: un viernes de ofertas entran diez veces más pedidos. La cola los guarda y los consumidores avanzan sin colapsar. Puedes escalar los consumidores según el tamaño de la cola.
  • Permite crecer por partes: agregar un nuevo proceso (por ejemplo, un sistema de puntos) no obliga a cambiar la tienda si escucha los mismos eventos.

Este es uno de los principios del pilar de confiabilidad de AWS Well-Architected: diseñar para que la falla de un componente no tumbe a los demás.

Cola, tema o bus de eventos

AWS ofrece tres herramientas para desacoplar. Se parecen, pero resuelven problemas distintos:

CriterioColaTema (pub/sub)Bus de eventos
ServicioAmazon SQSAmazon SNSAmazon EventBridge
En el restauranteEl riel de comandasEl altavoz que anuncia a todosEl jefe de sala que lee cada aviso y decide a quién le toca
Quién recibeUn consumidor procesa cada mensajeTodos los suscriptores reciben una copiaLos destinos cuyas reglas coinciden con el evento
EntregaEl consumidor pide los mensajes (pull)SNS los empuja a cada suscriptor (push)EventBridge los empuja a cada destino (push)
Se queda con el mensajeSí, hasta que lo procesen o venzaNo, lo entrega y listoNo, salvo que actives un archivo
Úsalo paraRepartir trabajo y absorber picosAvisar lo mismo a muchos a la vezEnrutar eventos de AWS, de tus apps y de terceros

Las siguientes lecciones bajan al detalle de cada herramienta: SQS, SNS, EventBridge y Step Functions.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.El servicio que envía correos de confirmación falla y hace que la tienda deje de aceptar pedidos. ¿Qué cambio lo evita?

  2. 2.¿Qué describe mejor una comunicación asíncrona?

  3. 3.Cada vez que se crea un pedido, tres sistemas distintos deben recibir el mismo aviso al mismo tiempo. ¿Qué patrón usas?

  4. 4.Durante una promoción, los pedidos llegan diez veces más rápido de lo que el sistema de facturación puede procesar. ¿Qué ayuda?

  5. 5.Una empresa quiere reaccionar a eventos de servicios de AWS y de una aplicación SaaS, enviando cada uno a un destino según su contenido. ¿Qué servicio usa?