Cuando una solicitud ejecuta trabajo síncrono de CPU —analizar un cuerpo JSON de 5MB, JSON.stringify en objetos enormes, bcrypt.compare en un bucle— el proceso completo de Node.js deja de atender otras solicitudes. Las comprobaciones de salud fallan; ALB marca los pods como no saludables.
// bcrypt en la ruta de solicitud - limitar la concurrenciaimport { Semaphore } from "async-mutex"; // o un semáforo personalizado pequeñoconst bcryptSlots = new Semaphore(4);
Pods más grandes no solucionan el análisis síncrono - Más RAM, mismo hilo bloqueado. Solución: Límite asíncrono o worker.
Aumentar el límite del cuerpo sin arquitectura - limit: '50mb' invita a los bloqueos. Solución: Subir a S3; procesar de forma asíncrona.
Registrar objetos enormes - JSON.stringify(big) en el serializador de pino bloquea el bucle. Solución: Registrar solo IDs.
Retroceso catastrófico de expresiones regulares - Entrada maliciosa cuelga la CPU. Solución: Expresiones regulares seguras, límites de longitud de entrada, re2 nativo.
Ignorar la salud durante el lote - Cron en el proceso de la API ejecuta trabajo síncrono. Solución: Despliegue de worker separado.