package io.muoncore.example; import io.muoncore.Muon; import io.muoncore.protocol.requestresponse.Response; import io.muoncore.protocol.requestresponse.server.RequestWrapper; import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.ExecutionException; import static io.muoncore.protocol.requestresponse.server.HandlerPredicates.all; public class ReactiveRPCAsync { public void exec(Muon muon) throws ExecutionException, InterruptedException { Queue<RequestWrapper> requestQueue = new LinkedList<>(); //request handler muon.handleRequest(all(), requestQueue::add); new Thread(() -> { while(true) { RequestWrapper wrapper = requestQueue.poll(); wrapper.ok("Hello"); if (requestQueue.isEmpty()) { // ... wait .... } } }); //request client Response data = muon.request("request://myservice/").get(); System.out.println("The Data is " + data.getPayload(String.class)); } }