Node.jsInterview preparation
Intermediate·Concept·2 min read

How do I handle backpressure and large uploads?

Practice this question

Definition:

Backpressure is a feedback mechanism that slows a producer when the consumer cannot keep up. Without it, incoming chunks may accumulate in memory even though the application is using streams. Node streams expose flow-control signals and utilities that help coordinate reading, writing, cleanup and errors.

Key points:

  • Stream chunks instead of buffering the whole file.

  • When write() returns false, wait for drain; pipeline helps manage stream flow and errors.

  • Set upload limits and clean up partial files when an upload fails.

  • Apply limits to total bytes and processing time, and do not trust only the client-provided content type.

Example — Node ESM file copy:

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

await pipeline(
  createReadStream('input.csv'),
  createWriteStream('output.csv')
);
  • pipeline coordinates backpressure and propagates stream failures; the surrounding job still needs failure reporting and partial-output cleanup.

Interview point:

  • Explain the producer/consumer speed mismatch and how respecting it bounds memory use.
Adapted from 02_NODE_EXPRESS_HTTP.md · “How do I handle backpressure and large uploads?”. Code examples are study fragments. Difficulty and core labels are editorial estimates; version-specific behavior should be checked against your project.