Search⌘ K
AI Features

Requirements of WhatsApp’s Design

Requirements

Let’s scope the WhatsApp design by identifying the following requirements.

Functional requirements

  • Conversation: Support one-on-one and group conversations.

  • Acknowledgment: Provide message delivery status (sent, delivered, and read).

  • Sharing: Enable sharing of media files, including images, videos, and audio.

  • Chat storage: Persist messages for offline users until they are successfully delivered.

  • Push notifications: Notify offline users of new messages when they reconnect.

Note: “Offline” refers to users disconnected from the internet. The system sends push notifications when they reconnect. “Online” users are actively connected and receive real-time messages.

Non-functional requirements

  • Low latency: Deliver messages with minimal delay.

  • Consistency: Deliver messages in order and ensure chat history is consistent across all user devices.

  • Availability: Prioritize high availability, though trade-offs may be made to ensure consistency.

  • Security: Implement end-to-end encryption so only communicating parties can access message content.

  • Scalability: Support an increasing number of users and daily messages.

The non-functional requirements of the WhatsApp system
The non-functional requirements of the WhatsApp system

Resource estimation

For capacity ...