I’m progressing on my reflexion about a multi-cluster setup (previous questions in the last reply of this thread).
Quick background: The idea is to use ES across multiple regions; all regions would eventually converge to the same state but I don’t want common streams and strong consistency between regions (I need high write availability so can’t afford reaching quorums with the latency between datacenters). Keeping strict event ordering between regions is not a must; despite what I initially thought, the same state can be reached with a different ordering of events if the events are properly designed.
So my current approach would be to have a cluster of ES nodes per region and some kind of replication happening so that the streams of each regions would be available in every region…
Two questions arise from that:
What would be the best way to replicate a stream to an other region? Obviously I could just subscribe and push, but is there a “stronger” way to exactly replicate a stream to another node?
Although I mentioned that x-region ordering is not vital, would there be any way to somehow merge & reorder streams from different nodes?