code: function Stream(log, connection) {
    Duplex.call(this);
  
    // * logging
    this._log = log.child({ component: 'stream', s: this });
  
    // * receiving and sending stream management commands
    this._initializeManagement();
  
    // * sending and receiving frames to/from the upstream connection
    this._initializeDataFlow();
  
    // * maintaining the state of the stream (idle, open, closed, etc.) and error detection
    this._initializeState();
  
    this.connection = connection;
  }
docs: Constructor ----------- The main aspects of managing the stream are: