To put it bluntly, you have over-engineered the system.
You have a Cluster Node 'near' each Java client, correct? That is, each datacenter has a Node plus one or more Java clients?
At that point there is very little need for an extra cache between Java and the data; simply re-request the data and let MySQL do the caching.
If you have sluggish queries, then let's discuss them and see if they can be sped up.
The setup I describe should be able to handles hundreds, possibly thousands of queries per second. Is your requirement stiffer than that?
See wsrep_sync_wait for dealing with causality checks.