Backpressure คือสิ่งที่เกิดขึ้นเมื่อข้อมูลถูกผลิต เร็วกว่าที่จะถูกบริโภคได้ ใน stream ถ้า readable source ที่เร็วผลักข้อมูลเข้าไปใน writable destination ที่ช้า ข้อมูลที่ยังไม่ถูกบริโภคจะ buffer อยู่ในหน่วยความจำ — และถ้าไม่จัดการ buffer นั้นจะโตขึ้นจนหน่วยความจำหมด Backpressure คือกลไก (และวินัย) สำหรับการรักษาสมดุลระหว่างผู้ผลิตและผู้บริโภค
ปัญหา
Fast source ──(1 GB/s)──▶ Slow destination (10 MB/s write speed)
▲
The 990 MB/s difference piles up in a memory buffer → OOM crash
ตัวอย่าง: การอ่านไฟล์ขนาดใหญ่อย่างรวดเร็วแล้วเขียนลง network socket หรือดิสก์ที่ช้า — ถ้าคุณไม่เคารพจังหวะของ destination หน่วยความจำจะพองตัว
