use configurable highWaterMark as limit for buffer