A lot of this is copy-pasted from CachingClusteredClient, can we somehow have this code only in one place?
Maybe extract some methods in CachingClusteredClient and reuse them here.