Yeah, for a modern large scale distributed system both the client api and implementations are pretty bad.