reactor-core/src/main/java/reactor/core/publisher/Flux.java
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));
	}
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));
	}
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 ) ) ; }
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
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 ) .