'''TODO:''' Do we want to try for any sort of geo-locality with data storage, e.g. putting the master for European users in Europe? This could greatly complicate the assignment of users to shards.
== Implications ==
Using a single master means we don't have to worry about conflicts or consistency. The sharding means this should not be a bottle-neck, and the use of an intermediate proxy means we can fail over fast if the master goes down.
'''However''', since we're doing asynchronous replication, there's a chance that recent database writes could be lost in the event of failure. The client will see a consistent, but out-of-date view of its data. It must be able to recover from such a situation, although we hope this would be a very rare occurrence!