The use case here is the registration and log-in process for a service that is global. Let’s assume a very basic case, pseudo-SQL is: registration = INSERT into ACCOUNT, and logging-in = SELECT from ACCOUNT where username = ? and password = ?.
Let’s say there are 4 datacenters: 3 in Ashburn (different availability zones) and 1 in Singapore.
Any tips on structuring this so that writes happen in Ashburn (regardless of where the customer is in the world), so require 2 of the 3 Ashburn datacenters to be online for consensus to write. However, reads can be from any of the 4 datacenters without contacting any other datacenter (in other words, can you read in a sort of eventual consistent fashion, know that you are giving up ACID / consensus in terms of reads in this scenario to get lower latency)?
Or is this all over-complicated and there is a simpler way to achieve the same goal (low latency for reads, higher latency due to multi-region consensus for writes)?