if I read it correctly, this typeConverter(MarshalledTypeConverter) checks if the key is a byte[] and, based on that, assumes that the request originated from hotrod - so would build an object based on it. This assumption doesn't stand true if the embedded cache is an Cache<byte[], byte[]> (not sure actually how it works with store as binary either) . Wouldn't it be more clear to have an internal flag (on command or context) telling us whether the request/command is embedded/hotrod/memcached/rest?