Worker threads x cluster x child_process
Pergunta
Node é single-thread pro seu código. Quando você usa worker_threads, quando cluster, e quando child_process?
Resposta esperada
worker_threads: pra trabalho CPU-bound dentro do mesmo processo — parsing pesado, cálculo, compressão, geração de PDF — que bloquearia o event loop. Threads compartilham memória via `SharedArrayBuffer` e trocam mensagens; overhead de criação é menor que um processo. cluster: pra escalar um servidor HTTP aproveitando vários cores — o master forka N workers (processos) que compartilham a porta de escuta, e o SO/Node distribui as conexões. Cada worker é um processo Node independente (sem memória compartilhada). child_process: pra rodar um programa externo (um binário, um script Python, ffmpeg) ou isolar código não confiável num processo separado. Resumo: CPU pesado no seu código → worker_threads; distribuir requisições HTTP por cores → cluster (ou rodar N instâncias atrás de um load balancer, que é o padrão em container); chamar outro programa → child_process.
Por que perguntam isso
Pergunta pleno/sênior de Node. Sinal bom: notar que em container o padrão costuma ser N instâncias atrás de LB em vez de cluster.