Is there a reason you dont want to use XDR?
Our architecture has a similar layout actually and we’re currently trying several different methods:
-
XDR between local clusters in each region where many app servers use the local cluster and let AS handle the rest
-
Separate application managed replication where the app handles it in a layer above the database, usually best for idempotent or high-latency stuff. We write to one location as a queue then fan out writes back to each region. Good for syncing/sharing data but major headaches for high-availability as catching up a disconnected cluster won’t be easy.
-
In-memory data fabric is the newest stuff we’re using. Basically IMDG/IMDF are in-memory caches evolved like this: single server cache > multiple server shared cache > distributed caching + data structures > distributed caching + data + computing. Look at Hazelcast, GridGain, Coherence for options. The IMDF code runs as a separate instance on every app server and can do local clustering with WAN transfer links. It can get complicated but very cool solution if you need it.