Transaction processing across XDCR

Hi gang,

We have a 5x3 Couchbase infrastructure (5 clusters, each with 3 nodes) running worldwide connected by XDCR. We are exploring how closely we can approach “transaction processing” in this setup. I have read this article ( which is good, but it applies only to a single cluster.

I suspect the answer is “Couchbase can sort of / maybe do transactions on a single cluster, but it definitely cannot do them on multi clusters.”

I cannot imagine how we can set up “two-phase commit” or “document lease-out” or “advisory locks” across XDCR. And the scheme would have to handle network errors and worldwide network partitioning.

Does the forum agree with me that transactions across clusters is not feasible?

TIA, Chuck


It seems unlikely that could be achieved. The article you link to isn’t even something that is typically recommend anymore. Doing that over multiple clusters would be quite an undertaking. Is there are a particular use case that you have in mind? There may be some other way to approach the problem.

Thanks Matthew. Here is a simplified version of our use case…

People read articles on our web site. They can get “credit” for reading an article by printing out a certificate showing they read it. But we only want to give credit once per user per article. So a user should only be able to print the certificate once.

(And it is possible a user could have simultaneous sessions on more than one cluster.)