ExpertiDict

JavaScript · Avançado · Inglês · Técnico

backpressure

/ˈbækˌpɹɛʃɚ/substantivo

Mecanismo dos streams do Node em que o consumidor lento sinaliza ao produtor para pausar. Sem ele, os dados se acumulam em buffers na memória.

Onde usar

Aparece ao copiar arquivos grandes ou processar uploads: write devolve false quando o buffer enche, e o produtor deve esperar o evento drain. Em code review, usar pipeline resolve isso automaticamente.

Em código

const { pipeline } = require('node:stream');
const fs = require('node:fs');
pipeline(
  fs.createReadStream('grande.log'),
  fs.createWriteStream('copia.log'),
  (err) => console.log(err ?? 'ok')
);

Exemplos

Without backpressure the whole file piled up in memory.

Sem backpressure, o arquivo inteiro se acumulou na memória.

write returned false, so we wait for the drain event.

O write devolveu false, então esperamos o evento drain.

Cuidado

Ignorar o retorno de write() num laço, enchendo a memória até o processo cair.

Sinônimos

contrapressão

Veja também

Todos os termos de JavaScript