Retour à la leçon
Mission

Mission : un export qui plante uniquement en production, jamais en local

Diagnostiquer un crash mémoire causé par l'absence de gestion du backpressure, puis corriger le code en respectant le signal de write() ou en migrant vers pipeline().

Contexte

Le service d'export copie des fichiers volumineux depuis un disque local rapide vers un stockage réseau (S3-compatible, plus lent). Le code actuel écoute readStream.on('data', chunk => writeStream.write(chunk)) sans jamais vérifier ce que write() retourne. En local avec des fichiers de test de quelques Ko, tout fonctionne. En production avec des fichiers de plusieurs gigaoctets vers un stockage réseau, le processus crashe après quelques minutes avec JavaScript heap out of memory.