reactor-core/src/main/java/reactor/core/publisher/ReplayProcessor.java
public static <T> ReplayProcessor<T> createTimeout(Duration maxAge, Scheduler scheduler) {
		return createSizeAndTimeout(Integer.MAX_VALUE, maxAge, scheduler);
	}
public static <T> ReplayProcessor<T> createTimeout(Duration maxAge, Scheduler scheduler) {
		return createSizeAndTimeout(Integer.MAX_VALUE, maxAge, scheduler);
	}
Creates a time-bounded replay processor.
<p>
In this setting, the {@code ReplayProcessor} internally tags each observed item
with a timestamp value supplied by the {@link Scheduler} and keeps only
those whose age is less than the supplied time value converted to milliseconds. For
example, an item arrives at T=0 and the max age is set to 5; at T&gt;=5 this first
item is then evicted by any subsequent item or termination signal, leaving the
buffer empty.
<p>
Once the processor is terminated, subscribers subscribing to it will receive items
that remained in the buffer after the terminal signal, regardless of their age.
<p>
If an subscriber subscribes while the {@code ReplayProcessor} is active, it will
observe only those items from within the buffer that have an age less than the
specified time, and each item observed thereafter, even if the buffer evicts items
due to the time constraint in the mean time. In other words, once an subscriber
subscribes, it observes items without gaps in the sequence except for any outdated
items at the beginning of the sequence.
<p>
Note that terminal signals ({@code onError} and {@code onComplete}) trigger
eviction as well. For example, with a max age of 5, the first item is observed at
T=0, then an {@code onComplete} signal arrives at T=10. If an subscriber subscribes
at T=11, it will find an empty {@code ReplayProcessor} with just an {@code
onCompleted} signal.

@param <T> the type of items observed and emitted by the Processor
@param maxAge the maximum age of the contained items

@return a new {@link ReplayProcessor} that replays elements based on their age.