ADR_006 Sharding & Routing per Geographic Region
Date: 11/1
Accepted
When trying to build a robust and highly available system, it is important to consider how to manage users from different regions. Sharding users to different deployments of a service based on their geographic location gives some natural load balancing, and ensures that users are not heavily impacted by latency to distant servers.
We have chosen to have a singular deployment of the farmacy food system.
Farmacyfood's goals at this time are to operate and expand within a single city in the near term. This does not justify the complication of managing multiple different deployments in one or more datacenters, or dealing with sharding users across infrastructure.
Should farmacyfood expand to multiple cities across the united states, the nature of viewing/ordering meals and receiving recommendations will likely not be heavily impacted by higher latency operations due to geographic distance.
Business wise, it would be a very great problem for farmacyfoods to have if a singular deployment is not scaling well enough. That bridge can be crossed later.