College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
Facebook Messenger/Whatsapp System Design
1. Methodology for FB Messenger/Whatsapp
1. 5 Step Process
1.1. Use cases, assumptions, constraints
1.2. Back of envelope calculations
1.3. Design core components
1.4. High level design
1.5. Scale the design
2. Facebook Messenger/Whatsapp
Step 1a: Use Cases
● Functional requirements (use cases)
○ Users sends a message
○ Users receives messages
○ Users can search chat history
● Nonfunctional requirements
○ High availability
○ High reliability
4. Facebook Messenger/Whatsapp
Step 2a: Back of envelope calculations
● Database design
○ Users table
■ Id
■ Name
■ Created_at
■ Active_chat_ID
○ Chat table
■ Id
■ Chat Name
■ Created_at
■ Particpants_progress (object with users_id and timestamps)
○ Message table
■ Id
■ Chat_ID
■ Sender_ID
■ Content
■ Created_at
5. Facebook Messenger/Whatsapp
Step 2b: Back of envelope calculations
● Daily Traffic Estimates
○ 1 million chat writes/sec and reads/sec
■ 1:1 read-write (even)
● Storage Estimates
○ Sizes of users (~50 b), chats (~50 b), messages (~100 b)
tables (~200 bytes total)
■ 200 MB/s
● 200 bytes * 1 million/sec
6. Facebook Messenger/Whatsapp
Step 3: Design core components
● Use case #1: User sends a message
○ Server, write API, database
● Use case #2: User reads a message
○ Server, read API, database
● Use case #3: User searches a chat
○ Search service