Hello Nat,
Our team was recently doing a research about this in general (not only connected to current Kentico features), so please let me present you our findings:
-
Replication of SQL server by is problematic and slow (we tried MS SQL replication, MS Sync framework and Azure SQL Data Sync), so having multiple DBs with compute instances in multiple regions for production purposes is not a good idea as it is approach that has been used in history and have been proven not optimal many times. Also the cost is much higher than any other solution.
-
Staging as a form of SQL replication has the same limitation as general tools used for SQL replication I mentioned earlier. Also please know that staging is not able to synchronize all types of Kentico objects. Now that is not a problem in case of development / administration as some synchronization lag is usually acceptable, there should be much lesser chance of conflicts and in case of conflicts it will be much easier to notice and resolve them without end clients ever noticing anything. Also in this scenario content staging will be synchronizing all the objects you need. However in production environment you would run into problems with the objects that can't be synchronized with staging and into conflicts and also synchronization lag would be much bigger problem.
-
Having multiple compute instances across regions with single DB is possible, however the region that does not have DB locally will be around 50% slower when it needs to connect to DB. Therefore this will help in that region in case of heavy output caching. The problem with this solution is that you still have only 2 points of presence, which means it will be still much worse than using CDN.
-
The best option definitely is CDN for as much content as possible - not only images, but also javascripts, CSS, parts of asynchronously loaded HTML etc.