829 million DAU translates to roughly 10k users logging in a second, I can't even imagine how many requests that translates to. Can someone explain how their infrastructure works so they can manage this? I literally cannot fathom a system to handle this that isn't multiple millions of servers.
As of June last year they had hundreds of thousands of machines. As for the architecture it is basically a PHP app in front of a massive fleet of Memcached instances and a few databases here and there specifically for different apps e.g. photos, messages etc.
That is a bit simplistic and is missing a bunch of things.
First the numerous C++ and Java backend services that do most of the heavy lifting like producing the feed, doing searches (of various types, both from what people type in, and internal ones), sending and receiving messages, spam and fake account detection, &c. The PHP portion acts as a front-end to these services.
TAO is the graph caching system that has largely replaced memcache at Facebook.
Just on the traffic side, there is the global traffic management system (for dynamic and for static content), different types of load balancers, CDN-specific caching software, image and video transcoding/encoding, &c.
And that's just the stuff involved in the production path - there are all sorts of behind-the-scenes things that do async work of various types - either as soon as possible (video encoding, updating) or on a daily or whatever cadence to update infrequently-changing things.
What's the trend around external vs. eventual consistency at Facebook? I ask this comparing eventual consistency in TOA and Google's shift towards external consistency in Spanner.
Just like a high level overview of there setup, I'd assume they would do more sophisticated things than just throwing more hardware at the problem(millions of servers vs thousands).