WhatsApp Sistem Dizaynı
WhatsApp Sistem Dizaynı
Problemin Təsviri:
WhatsApp kimi real-time messaging platforması dizayn etmək lazımdır. Sistem aşağıdakı əsas komponentləri dəstəkləməlidir:
- Mesajlaşma və çatdırılma
- Qrup chat
- End-to-end encryption
Functional Requirements:
Əsas Funksiyalar:
-
Mesajlaşma və Çatdırılma
- One-to-one messaging
- Real-time message delivery
- Message status (sent, delivered, read)
- Media sharing (photo, video, audio, documents)
- Voice/Video calls
-
Qrup Chat
- Group creation və management
- Add/remove members
- Group admin privileges
- Broadcast lists
-
End-to-End Encryption
- Signal Protocol
- Key exchange
- Forward secrecy
- Security notifications
Non-Functional Requirements
Performance:
- Message delivery latency < 100ms
- 99.99% uptime availability
- Support billions of users
- Low bandwidth consumption
Scalability:
- 2 milyard users
- 100 milyard messages/day
- Real-time synchronization
- Global distribution
Capacity Estimation
Fərziyyələr:
- 2 milyard users
- 1 milyard daily active users (DAU)
- Hər user gündə 40 mesaj göndərir
- Hər user gündə 200 mesaj alır
- Orta mesaj ölçüsü: 100 bytes
- 10% mesajlarda media var (orta 1 MB)
Storage:
- Daily messages:- Daily messages:- Dages/day
- Text messages: 40B × 100 bytes × 0.9 = 3.6 TB/day
- Media messages: 40B × 0.1 × 1 MB = 4 PB/day
- Total daily: ~4 PB/day
QPS:
- Message send: 40B /- Message send,000 QPS
- Message receive: 463K × 5 (avg recipients) = ~2.3M QPS
- Peak QPS: ~5M QPS
High-Level System Architecture
Əsas Komponentlərin Dizaynı
1. Chat Service
Məsuliyyətlər:
- Message routing
- Delivery confirmation
- Message persistence
- Media handling
Message Flow:
Database Schema (Cassandra):
messages:
- message_id (PK, UUI - message_id (PKUUID)
- recipient_id (UUID)
- content (encrypted blob)
lable)
- timestamp
- status (sent/delivered/read)
user_messages:
- user_id (PK)
- timestamp (CK, DESC)
- message_id (UUID)
- is_sender (boolean)
2. #### 2. #### 2. ####abase Schema:**
groups:
- group_id (PK, UUID)
- name
- created_by (FK → users)
- created_at
- member_count
group_members:
- group_id (PK)
- user_id (CK)
- role (admin/member)
- joined_at
3. End-to-End Encryption
Signal Protocol:
- Double Ratchet Algorithm
- X3DH key exchange
- Forward secrecy
- Post-compromise security
Əlavə Təkmilləşdirmələr
- Status Updates: Stories feature
- Voice Messages: Audio - Voice Mes*Location Sharing: Real-time location
- Disappearing Messages: Auto-delete
- Multi-device Support: Web/Desktop clients