reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final <C extends Collection<? super T>> Flux<C> buffer(Publisher<?> other, Supplier<C> bufferSupplier) {
		return onAssembly(new FluxBufferBoundary<>(this, other, bufferSupplier));
	}
public final <C extends Collection<? super T>> Flux<C> buffer(Publisher<?> other, Supplier<C> bufferSupplier) {
		return onAssembly(new FluxBufferBoundary<>(this, other, bufferSupplier));
	}
Collect incoming values into multiple user-defined {@link Collection} buffers, as
delimited by the signals of a companion {@link Publisher} this operator will
subscribe to.
<p>
<img class="marble" src="doc-files/marbles/bufferWithBoundary.svg" alt="">

@reactor.discard This operator discards the currently open buffer upon cancellation or error triggered by a data signal,
and the last received element when the bufferSupplier fails.

@param other the companion {@link Publisher} whose signals trigger new buffers
@param bufferSupplier a {@link Supplier} of the concrete {@link Collection} to use for each buffer
@param <C> the {@link Collection} buffer type

@return a microbatched {@link Flux} of {@link Collection} delimited by signals from a {@link Publisher}