reactor-core/src/main/java/reactor/core/publisher/Flux.java
public static <I> Flux<I> first(Iterable<? extends Publisher<? extends I>> sources) {
		return onAssembly(new FluxFirstEmitting<>(sources));
	}
public static <I> Flux<I> first(Iterable<? extends Publisher<? extends I>> sources) {
		return onAssembly(new FluxFirstEmitting<>(sources));
	}
Pick the first {@link Publisher} to emit any signal (onNext/onError/onComplete) and
replay all signals from that {@link Publisher}, effectively behaving like the
fastest of these competing sources.

<p>
<img class="marble" src="doc-files/marbles/firstForFlux.svg" alt="">

@param sources The competing source publishers
@param <I> The type of values in both source and output sequences

@return a new {@link Flux} behaving like the fastest of its sources