Stdio transport is the most convenient option in a distributed application, since you can pass a custom sink/source to it. However, the current implementation has critical issue:
Client messages are processed sequentially. This means there can't be 2 requests being processed at once.
If there's a pinger to check client liveness, the "pong" response from the client won't be handled before the previous, maybe very long-running, request handler is finished.
Also, it blocks advanced protocol features like elicitation.
This issue was originally reported in #564, but was extracted to a separate task. cc: @i1bro
Stdio transport is the most convenient option in a distributed application, since you can pass a custom sink/source to it. However, the current implementation has critical issue:
Client messages are processed sequentially. This means there can't be 2 requests being processed at once.
If there's a pinger to check client liveness, the "pong" response from the client won't be handled before the previous, maybe very long-running, request handler is finished.
Also, it blocks advanced protocol features like elicitation.
This issue was originally reported in #564, but was extracted to a separate task. cc: @i1bro