Design Twitter
https://www.hiredintech.com/classrooms/system-design/lesson/72
user's browser / mobile App => Load Balancer => AppSrv1, AppSrv2, AppSrv3, ... => DB
Load Balancer:
User => DNS load balancing, CDN => Software Load Balancer (nginx) => App Servers (Apache, Tomcat, Django..) => DB Cache => DB.
Database Sharding:
application level (driven by config or some implicit rule e.g. tweet id's some bits)
library level
existing product,
Database Schema:
Users, Tweets, Followers, Favorites
Indexes on each table