Problem statement: My application will be deployed in 3 separate regions, viz: North America, Europe, and Asia. I want to build a redis architecture with the following constraints:
- Each region should have it's own Redis cluster which can have multiple masters and slaves.
- Each region's cluster should be able to handle writes and reads locally.
Let me elaborate a bit on the second point: I want that all regions should have their own copy of data. So any new data that an application in Europe writes should go to a redis cluster in Europe region not in any other region. And then this data can be (asynchronously) replicated to Asia and North America region.
What I've found as of now is that I can't use redis sentinel as I want mutliple masters. I can't use (I think) redis cluster with masters on separate regions as this would shard the data across all regions, thereby application in Europe can try to write on a key which is sharded on a redis master in Asia.
So my Question is: Is this architecuture possible with Redis OS right now(), or in near future?
I've read this, this, and this on SO stating this feature was not previously available but, It seems this feature is available in Redis Entireprise here though, I couldn't find anything on this topic for open source version of Redis.