package com.rp.sec08MergePublisher.helper; import com.rp.coureutil.Util; import reactor.core.publisher.Flux; import java.util.ArrayList; import java.util.List; public class NameGenerator { private List<String> list=new ArrayList<>(); public Flux<String> generateNames(){ return Flux.generate(synchronousSink -> { String name= Util.getFaker().name().fullName(); System.out.println("genrated frsh\t:"+name); synchronousSink.next(name); list.add(name); Util.sleep(1); }) .cast(String.class) .startWith(getFromCache()); } private Flux<String> getFromCache(){ return Flux.fromIterable(list); } }