My company is planning on implementing two geographically separate Couchbase clusters using bidirectional XDCR between the clusters. Once a client application has attached to one cluster and opened a bucket through the java SDK, can the bucket or cluster be configured to route requests to the other date center cluster in the event the original is not available? Or, is this logic that we would have to implement in our code?
At the moment, this is logic you’d need to implement in your code. Also, note that because of some of the intelligence in the client to handle certain kinds of failure conditions, we do not test or support running a connection across a WAN. It’s best to failover to a local app in the other datacenter.
There is nothing that prevents this from working if the latencies and throughput are good, but in certain failure cases where your network is overloaded, a client reaching across a WAN can see a cluster as either partially failed or completely failed.
That’s all educated supposition, however. The primary reason this kind of deployment wouldn’t be supported is because we don’t test to it. The assumption is LAN like latency/throughput between the client SDK and the cluster. That’s how we test.