CGrpcService class uses std::lock_guard in order to lock the processing of a single request per partition. If request processing hangs then all subsequent requests of the same partition will not be processed.
One can implement a try_lock with a timeout. A request timeout can be used. If the request can't be processed an error must be returned.