Basically I'm trying to decide between HotRod and REST clients and my understanding is that with HotRod (for a distributed cache) the client has knowledge of what keys are in what node in the cluster, so a cache miss is avoided.
In distribution mode, if the key is not on local node (and it should not be hashed there), the entry is retrieved from remote node rather than going to the database.
In invalidation mode, you would go to the database if it's not found in memory.
I would recommend HotRod as it knows which node to ask for a key. Also there is no need for a loadbalance as HR will do the work.
Decision for Invalidation or Distribution depends on your use-case and what approach (REST, HR) you use. Invalidation can be slow if you doing a lot of writes.