When a stream cannot accept data as fast as it arrives, write() returns false. The producer should stop until the 'drain' event fires. Ignoring the signal makes memory grow with the size of the backlog.