in 2011 • 2.8 million TCP connections in Feb 2012 • 571K packets/sec, > 200K distinct messages/sec • Goal was Resilient against disruptions • 450 million active users with only 32 engineers source: blog.whatsapp.com/196/1-million-is-so-2011
• Fronted by a Redis cache • Tuned to fetch as little data as possible from the database • All associations are preloaded • All data is generic, not customized to the current user • The request is paginated to 100 primary records, without a limit on side loads • The payload is a hefty 160k, un-gzipped source: http://sorentwo.com/2016/02/02/caching-what-is-it-good-for.html
entity cache • All fields are fetched from the database, SELECT * • All JSON responses are serialized on the fly, directly in views • Includes customized data based on the current user • The request isn’t paginated at all, there are 250 primary records • The payload is a massive 724k, un-gzipped source: http://sorentwo.com/2016/02/02/caching-what-is-it-good-for.html