reactor-core/src/main/java/reactor/core/publisher/Mono.java
public final Flux<T> expandDeep(Function<? super T, ? extends Publisher<? extends T>> expander,
			int capacityHint) {
		return Flux.onAssembly(new MonoExpand<>(this, expander, false, capacityHint));
	}
public final Flux<T> expandDeep(Function<? super T, ? extends Publisher<? extends T>> expander,
			int capacityHint) {
		return Flux.onAssembly(new MonoExpand<>(this, expander, false, capacityHint));
	}
public final Flux < T > expandDeep ( Function < ? super T , ? extends Publisher < ? extends T > > expander , int capacityHint ) { return Flux . onAssembly ( new MonoExpand <> ( this , expander , false , capacityHint ) ) ; }
Recursively expand elements into a graph and emit all the resulting element,
in a depth-first traversal order.
<p>
That is: emit the value from this {@link Mono}, expand it and emit the first value
at this first level of recursion, and so on... When no more recursion is possible,
backtrack to the previous level and re-apply the strategy.
<p>
For example, given the hierarchical structure
<pre>
A
- AA
- aa1
- AB
- ab1
- a1
</pre>

Expands {@code Mono.just(A)} into
<pre>
A
AA
aa1
AB
ab1
a1
</pre>

@param expander the {@link Function} applied at each level of recursion to expand
values into a {@link Publisher}, producing a graph.
@param capacityHint a capacity hint to prepare the inner queues to accommodate n
elements per level of recursion.

@return this Mono expanded depth-first to a {@link Flux}
Recursively expand elements into a graph and emit all the resulting element in a depth - first traversal order . <p > That is : emit the value from this { @link Mono } expand it and emit the first value at this first level of recursion and so on ... When no more recursion is possible backtrack to the previous level and re - apply the strategy . <p > For example given the hierarchical structure <pre > A - AA - aa1 - AB - ab1 - a1 < / pre >