¿Qué diferencia práctica hay entre concurrencia, paralelismo y no bloqueo en Node.js?

¿Qué diferencia práctica hay entre concurrencia, paralelismo y no bloqueo en Node.js? en Node.js: criterios sobre asincronía y concurrencia, errores comunes...

3 min de lecturaIntermedio
Media AsincroníaConcurrenciaRuntime

Detrás de "¿Qué diferencia práctica hay entre concurrencia, paralelismo y no bloqueo en Node.js?" suele haber una tensión real en Node.js entre asincronía y concurrencia.

En un nivel intermedio interesa ver si colocas bien los límites de "Qué diferencia práctica hay entre concurrencia, paralelismo y no bloqueo en Node.js", justificas por qué eliges ese patrón y explicas cómo lo mantendrías legible para el equipo.

Qué evalúa el entrevistador

  • Si distingues qué parte de "Qué diferencia práctica hay entre concurrencia, paralelismo y no bloqueo en Node.js" pertenece a asincronía y cuál debería resolverse en concurrencia.
  • Si conviertes la respuesta en criterios observables: límites claros, impacto en el mantenimiento y forma de detectar regresiones.
  • Si sabes ubicar efectos, limpiezas, cancelación y propagación de errores sin contaminar la parte declarativa del código.

Respuesta sólida

  • Distingue qué parte puede seguir siendo pura y qué parte necesita sincronizarse con el mundo exterior.
  • Describe cómo controlarías suscripciones, cancelación, reintentos o cierre de recursos para que el componente no acumule efectos zombis.
  • Si hay asincronía, aclara qué harías con estados intermedios, errores y cambios rápidos de entrada.

Compromisos y errores comunes

  • El error habitual es usar efectos para derivar datos que podrían calcularse de forma pura o para tapar un mal diseño de dependencias.
  • Sin cancelación ni limpieza es muy fácil dejar trabajo en vuelo, respuestas tardías o cierres obsoletos.

Ejemplo de código

Un ejemplo pequeño ayuda a ver dónde colocarías la lógica de asincronía en "Qué diferencia práctica hay entre concurrencia, paralelismo y no bloqueo en Node.js" y qué parte dejarías derivada o encapsulada.

import { pipeline } from 'node:stream/promises';
import { createReadStream, createWriteStream } from 'node:fs';
import { createGzip } from 'node:zlib';

await pipeline(
  createReadStream("server.log"),
  createGzip(),
  createWriteStream("server.log.gz"),
);

Lo importante no es la API concreta, sino que la solución hace visible la fuente de verdad, el tratamiento del error y el punto exacto donde asincronía se sincroniza con concurrencia dentro de "Qué diferencia práctica hay entre concurrencia, paralelismo y no bloqueo en Node.js" en Node.js.

Ejemplo o caso real

Yo lo bajaría a un escenario reconocible de Node.js: una pieza donde "Qué diferencia práctica hay entre concurrencia, paralelismo y no bloqueo en Node.js" aparece de forma recurrente, ya ha dejado señales en revisión o en soporte y mezcla asincronía con concurrencia. Si la decisión mejora claridad, observabilidad y velocidad de cambio en ese trozo, entonces merece escalarla; si no, la dejaría local y documentada.

Frase corta de entrevista

Si una decisión de Node.js no mejora claridad, coste de cambio o fiabilidad, probablemente aún no merece existir.

¿Completaste esta sección?

Marcarla como leída actualiza tu progreso.