reactor-core/src/main/java/reactor/core/publisher/ParallelFlux.java
public final <U> ParallelFlux<U> composeGroup(Function<? super GroupedFlux<Integer, T>,
			? extends Publisher<? extends U>> composer) {
		if (getPrefetch() > -1) {
			return from(groups().flatMap(composer::apply),
				parallelism(), getPrefetch(),
				Queues.small());
		}
		else {
			return from(groups().flatMap(composer::apply), parallelism());
		}
	}
public final <U> ParallelFlux<U> composeGroup(Function<? super GroupedFlux<Integer, T>,
			? extends Publisher<? extends U>> composer) {
		if (getPrefetch() > -1) {
			return from(groups().flatMap(composer::apply),
				parallelism(), getPrefetch(),
				Queues.small());
		}
		else {
			return from(groups().flatMap(composer::apply), parallelism());
		}
	}
Allows composing operators off the 'rails', as individual {@link GroupedFlux} instances keyed by
the zero based rail's index. The transformed groups are {@link Flux#parallel parallelized} back
once the transformation has been applied.
<p>
Note that like in {@link #groups()}, requests and cancellation compose through, and
cancelling only one rail may result in undefined behavior.

@param composer the composition function to apply on each {@link GroupedFlux rail}
@param <U> the type of the resulting parallelized flux
@return a {@link ParallelFlux} of the composed groups