Hi folks, I'm implementing a new feature of apisix-java-plugin-runner[1]. I am having some problems.
Now apisix-java-plugin-runner is based on reactor-netty[2] framework to implement Unix Domain Socket communication with APISIX. The role of apisix-java-plugin-runner is server-side and the role of APISIX is client-side. They worked well before. The problem I encountered while implementing the new feature is as follows: 1. request A enters apisix-java-plugin-runner and when processing request A, create request B to APISIX 2. get the response of request B from APISIX 3. continue processing request A, and retuen response to APISIX I have tried to implement step 1 and 2, but step3 is difficult and I can't interrupt processing request A due to the limitation of reactor-netty framework. I also tried to contact the developers of reactor-netty and they suggested me to choose a new framework[3]. I've done some research and the current optional implementations are 1. rsocket-java: https://github.com/rsocket/rsocket-java 2. native Unix Domain Socket support based on JDK16: https://openjdk.java.net/jeps/380 3. junixsocket: https://github.com/kohlschutter/junixsocket At this stage I prefer to use the Unix Domain Socket support native to JDK16. I'm doing a POC on these frameworks. I hope to get your guidance. [1]https://github.com/apache/apisix-java-plugin-runner [2]https://github.com/reactor/reactor-netty [3]https://github.com/reactor/reactor-netty/issues/1916 *ZhengSong Tu* My GitHub: https://github.com/tzssangglass Apache APISIX: https://github.com/apache/apisix