reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final ConnectableFlux<T> replay(int history, Duration ttl, Scheduler timer) {
		Objects.requireNonNull(timer, "timer");
		return onAssembly(new FluxReplay<>(this, history, ttl.toMillis(), timer));
	}
public final ConnectableFlux<T> replay(int history, Duration ttl, Scheduler timer) {
		Objects.requireNonNull(timer, "timer");
		return onAssembly(new FluxReplay<>(this, history, ttl.toMillis(), timer));
	}
Turn this {@link Flux} into a connectable hot source and cache last emitted signals
for further {@link Subscriber}. Will retain up to the given history size onNext
signals with a per-item ttl.
<p>
Completion and Error will also be replayed until {@code ttl} triggers in which case
the next {@link Subscriber} will start over a new subscription
<p>
<img class="marble" src="doc-files/marbles/replayWithHistoryAndTtl.svg" alt="">

@param history number of events retained in history excluding complete and error
@param ttl Per-item and post termination timeout duration
@param timer a {@link Scheduler} instance to read current time from

@return a replaying {@link ConnectableFlux}