I've always admired memcached use of a hash on the client to know where to store/retrieve data. Unfortunately, it makes it difficult to build ha, but it is a very elegant way to allow scaling horizontally without the need for a catalog server.
PS: Yes I know, eXtreme Scale and ES do HA, which is not easy to do with client side consistent hashing partitioning.