Having worked at Google and Amazon. Amount of technical infrastructure it takes to run G > amazon. In amazon, architecture is very simple, webservers, database, big cache. Because each transaction is independent so sharding is relatively easy.
In G, everyday traffic is so huge that we have 3-4 levels of load balancers just to manage load. If anyone is interested I would suggest to read about GSLB which is datacenter level global load balancer.
I would argue that on the other hand, Amazon has real money transactions , which means it has much higher challenge in terms of HA and consistency. A Google query or Gmail message or YouTube not loading or loading inconsistently is not a big deal, but an Amazon purchase not being added to cart or inventory not updating for all nodes is a much bigger problem
Correct. IMO, it can be solved by using relational database to guarantee consistency. They probably have sharded relational database. Sharding + Replication/Standbys can solve most of scalability issues.
There's a very different set of challenges once you interface with the physical world. Not saying easier or harder, but very different. A search returning 500 is inconvenient. A single middle mile logistics error puts thousands of physical boxes in the wrong place and they need to be recovered after the error is fixed.
On Alibaba/Amazon v/s Google, I think it is easier to scale for a few days (worst case: throw hardware at it, have SDEs working overtime, etc) v/s scaling for everyday. So Google's everyday scaling challenge seems harder.
hahahaha... sharded relational databases for amazon scale :P Which database? Oracle?
also, how about scaling warehouse traffic? like shipping 400 physical items per second (stats from half a decade past).. it’s super complex pipeline involving space optimization/robotics/scheduling and so on... not just splitting traffic through multi-level loadbalancers to pre-computed indexes.
also, how about aws services which serves other aws services plus other large interne companies like Netflix?