Streaming de grandes volúmenes de datos en Node.js: backpressure y generadores asíncronos

La mayoría de las APIs que "funcionan bien en desarrollo" esconden una bomba de tiempo silenciosa: cargan conjuntos de resultados completos en memoria antes de hacer nada con ellos. Con mil filas, esto pasa desapercibido. Con cien mil, los tiempos de respuesta se disparan. Con un millón, el proceso agota la memoria (OOM) y tumba el pod. Los streams son la solución estándar, pero los detalles de implementación, sobre todo el backpressure, son donde la mayoría de los intentos fracasan.

El patrón problemático está por todas partes: