Repaso
English

¿Por qué poner una cola de mensajes entre un servicio de pedidos y uno de correo?

Opciones

  1. Para que los correos lleguen mucho más rápido a los usuarios
  2. Para desacoplarlos; los correos se gestionan después (Opción correcta)
  3. Las colas sustituyen a una base de datos real
  4. Para cifrar cada correo que se envía

Respuesta

Para desacoplarlos: el servicio de pedidos deja un mensaje y sigue; el de correo lo procesa cuando puede, aunque haya estado caído un momento

Por qué

Sin una cola, el servicio de pedidos llama directamente al de correo y debe esperar; si el de correo está caído, la petición del pedido falla.

Con una cola (RabbitMQ, SQS, Kafka) el servicio de pedidos solo publica 'pedido creado' y responde al usuario de inmediato. El servicio de correo lee los mensajes a su ritmo y se pone al día tras una caída.

Esto es comunicación asíncrona.

Recuerda

Cola = desacoplar productor y consumidor; el trabajo ocurre después.

Términos clave

Practica esta pregunta en Repaso