You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RxInvokerProvider.getRxInvoker receives a SyncInvoker. This makes no sense in modern world.
A consequence of this is that developers are enticed to use SyncInvoker interface, as is done by org/glassfish/jersey/client/JerseyCompletionStageRxInvoker.java, for example.
Proposal: update the API to require AsyncInvoker.
Expectation: RxInvoker should be as good as AsyncInvoker, just providing a better API with CompletionStages.
The issue here is that SyncInvoker can only start waiting for request in a thread, blocking the thread for the duration of the wait for response. AsyncInvoker is more suitable, since it allows to start using a thread only after the response started arriving. A well-designed system can work with asynchronous thread pool of CPU-count size. The use of SyncInvoker precludes that.
The text was updated successfully, but these errors were encountered:
RxInvokerProvider.getRxInvoker
receives aSyncInvoker
. This makes no sense in modern world.A consequence of this is that developers are enticed to use
SyncInvoker
interface, as is done by org/glassfish/jersey/client/JerseyCompletionStageRxInvoker.java, for example.Proposal: update the API to require
AsyncInvoker
.Expectation:
RxInvoker
should be as good asAsyncInvoker
, just providing a better API withCompletionStage
s.The issue here is that
SyncInvoker
can only start waiting for request in a thread, blocking the thread for the duration of the wait for response.AsyncInvoker
is more suitable, since it allows to start using a thread only after the response started arriving. A well-designed system can work with asynchronous thread pool of CPU-count size. The use ofSyncInvoker
precludes that.The text was updated successfully, but these errors were encountered: