¿Por qué poner una cola de mensajes entre un servicio de pedidos y uno de correo?
Opciones
- Para que los correos lleguen mucho más rápido a los usuarios
- Para desacoplarlos; los correos se gestionan después (Opción correcta)
- Las colas sustituyen a una base de datos real
- 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.