Featured image of post Streams en Node.js: Procesamiento eficiente de datosFeatured image of post Streams en Node.js: Procesamiento eficiente de datos

Streams en Node.js: Procesamiento eficiente de datos

Practical guide to Node.js streams for efficient data processing. Covers readable, writable, transform streams, backpressure, piping, object mode, and memory optimization.

Los streams de Node.js permiten procesar datos en fragmentos (chunks) sin cargar todo en memoria. Esencial para archivos grandes y redes.

Tipos de streams

Readable: fuente de datos. Writable: destino de datos. Transform: transforma datos (compress, encrypt). Duplex: ambos (net socket).

Pipe y pipeline

readable.pipe(writable) encadena streams. pipeline (recomendada) maneja errores y limpia correctamente: pipeline(readable, transform, writable, callback).

Backpressure

Cuando el writable es más lento que el readable, se aplica backpressure. highWaterMark controla el buffer interno. El stream pause automáticamente.

Ejemplo práctico

Procesar archivos CSV grandes: leer con Readable, transformar líneas, escribir a DB. Sin streams, el archivo completo ocupa memoria.