Desarrollador Node.js: pregunta de entrevista
¿Cómo funciona el event loop de Node.js?
Node.js ejecuta JavaScript en el hilo del event loop y delega mucha E/S al sistema o al pool de libuv. Los callbacks completados entran en fases del loop; trabajo largo de CPU bloquea todas las solicitudes.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
Node ejecuta JavaScript en un hilo y delega trabajo de ficheros, DNS, compresión y parte de criptografía a un pool de hilos de libuv, mientras los sockets de red los multiplexa el sistema operativo. El loop recorre fases: temporizadores, callbacks pendientes, poll de E/S, check para setImmediate, callbacks de cierre; process.nextTick y las microtareas de promesas se vacían entre cada callback. Cada callback corre hasta terminar, así que un cálculo síncrono de 200 ms retrasa a todas las demás solicitudes 200 ms por muy asíncrono que parezca el código de alrededor. El throughput viene de mantener los callbacks cortos y mover el trabajo de CPU a otro sitio.
Ejemplo
Una API que hasheaba contraseñas con una llamada síncrona a bcrypt atendía 30 solicitudes por segundo y congelaba los demás endpoints durante cada hash; pasar a la variante asíncrona, que corre en el pool de hilos, recuperó miles de solicitudes por segundo. Un JSON.parse de un cuerpo de 100 MB sigue bloqueando el loop porque parsear es JavaScript puro, así que los payloads grandes se transmiten en streaming o se rechazan.
Errores frecuentes
- Creer que la sintaxis async hace no bloqueante al código limitado por CPU.
- Recurrir con process.nextTick y dejar sin atender los callbacks de E/S.
- Ejecutar un proceso en una máquina de 16 núcleos y preguntarse por qué la CPU está al 6 por ciento.
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.