Improvements mostly related to client-server usage

It can end with infinite loop, I've already experienced that with inconsistent cluster. But I don't think it's necessary to introduce any failsafe mechanisms throwing exceptions here - if the service is not working well, it could hang anyway.