code: private void pauseOrResumeReading() {
          int bytesWaiting;
          synchronized (lock) {
              bytesWaiting = waitingAppends.values()
                      .stream()
                      .mapToInt(a -> a.getData().readableBytes())
                      .sum();
          }
  
          if (bytesWaiting > HIGH_WATER_MARK) {
              log.debug("Pausing writing from connection {}", connection);
              connection.pauseReading();
          }
          if (bytesWaiting < LOW_WATER_MARK) {
              log.trace("Resuming writing from connection {}", connection);
              connection.resumeReading();
          }
      }
docs: If there is too much data waiting throttle the producer by stopping consumption from the socket.
  If there is room for more data, we resume consuming from the socket.