code: public final Flux<T> onBackpressureBuffer(int maxSize, Consumer<? super T> onBufferOverflow,
  			BufferOverflowStrategy bufferOverflowStrategy) {
  		Objects.requireNonNull(onBufferOverflow, "onBufferOverflow");
  		Objects.requireNonNull(bufferOverflowStrategy, "bufferOverflowStrategy");
  		return onAssembly(new FluxOnBackpressureBufferStrategy<>(this, maxSize,
  				onBufferOverflow, bufferOverflowStrategy));
  	}
docs: Request an unbounded demand and push to the returned {@link Flux}, or park the observed
  elements if not enough demand is requested downstream, within a {@code maxSize}
  limit. Over that limit, the overflow strategy is applied (see {@link BufferOverflowStrategy}).
  <p>
  A {@link Consumer} is immediately invoked when there is an overflow, receiving the
  value that was discarded because of the overflow (which can be different from the
  latest element emitted by the source in case of a
  {@link BufferOverflowStrategy#DROP_LATEST DROP_LATEST} strategy).
  
  <p>
  Note that for the {@link BufferOverflowStrategy#ERROR ERROR} strategy, the overflow
  error will be delayed after the current backlog is consumed. The consumer is still
  invoked immediately.
  
  <p>
  <img class="marble" src="doc-files/marbles/onBackpressureBufferWithMaxSizeStrategyDropOldest.svg" alt="">
  
  @reactor.discard This operator discards the buffered overflow elements upon cancellation or error triggered by a data signal,
  as well as elements that are rejected by the buffer due to {@code maxSize} (even though
  they are passed to the {@code onOverflow} {@link Consumer} AND the {@code bufferOverflowStrategy} first).
  
  @param maxSize maximum buffer backlog size before overflow callback is called
  @param onBufferOverflow callback to invoke on overflow
  @param bufferOverflowStrategy strategy to apply to overflowing elements
  
  @return a backpressured {@link Flux} that buffers up to a capacity then applies an
  overflow strategy