According to the core client proposal, we plan to maintain three native implementations of TiKV clients, Go Client, Java Client and Rust Client. Then other clients could be built on the top of the Rust Client.
However, while walking through the implementation of C++ Client, I found that we actually block on the async method call when implement the C++ version API.
From my understanding this likely blocks all threads if network suffers while it should have suspended the thread on IO waiting.
Is it a problem in production? What is the best practice reconcile thread model between Rust and other languages when we implement clients in other languages? Does Python Client also suffer this issue?