title: Does readable.push() maintain a buffer in memory?
body: <p>The documentation says that invoking <code>readable.push(chunk)</code> will cause data to be added to the <strong>internal queue</strong> for users to consume. Does that mean there is an internal buffer in the memory writing data until the buffer gets full, each time <code>readable.push(chunk)</code> gets invoked?</p>
  <pre><code>var Readable = require(&quot;stream&quot;).Readable;
  
  var readable = new Readable();
  
  var num = 1;
  
  readable._read = function(size) {
      readable.push((num++).toString());
      if (num == 101) {
          readable.push(null);
      }
  }
  
  readable.pipe(process.stdout);
  </code></pre>
  <p>If that's what actually happens, can you explain me how the writable stream <code>process.stdout</code> works with that internal buffer? I know it also maintains its own buffer in the memory.</p>
  <p>I understand I might have gotten everything wrong here from the beginning, but I'm trying to put everything together until I make myself clear with this concept.</p>
  <p>Thanks!</p>