Desarrollador Backend: pregunta de entrevista
¿Cuándo usas una cola de mensajes?
Usa una cola cuando el trabajo puede ser asíncrono, reintentable o suavizado bajo carga. Los consumidores deben ser idempotentes porque la entrega puede duplicarse o retrasarse.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
Una cola desacopla al productor del consumidor en tiempo y capacidad: el productor vuelve en cuanto el mensaje está almacenado de forma duradera, los consumidores procesan a su ritmo y las ráfagas se absorben en lugar de perderse. El precio es entrega al menos una vez, reordenamiento y consistencia eventual, así que cada consumidor debe manejar duplicados y el sistema debe exponer una ruta de dead-letter para mensajes que fallan repetidamente. Úsala cuando el trabajo puede retrasarse y reintentarse; mantén una llamada síncrona cuando el llamador necesita el resultado ya.
Ejemplo
Envía un trabajo de email después de confirmar un pedido; el worker registra el id de evento para que una reentrega no envíe otro email. Publicar desde dentro de la transacción mediante una tabla outbox garantiza que el mensaje existe si y solo si existe el pedido, algo que una publicación directa tras el commit no puede prometer.
Errores frecuentes
- Publicar el mensaje antes del commit y enviar un email sobre un pedido que se revirtió.
- Suponer entrega exactamente una vez del broker en lugar de hacer idempotente al consumidor.
- No tener cola de dead-letter, de modo que un mensaje envenenado bloquea la partición para siempre.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.