<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/system-design-interview-design-whatsapp-zmrnpocfy" -->

---
title: System Design Interview: Design WhatsApp | daily.dev
description: This post outlines how to design a high-level system architecture for a messaging app similar to WhatsApp. Key points include handling 10 billion messages...
canonical: https://daily.dev/posts/system-design-interview-design-whatsapp-zmrnpocfy
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: System Design Interview: Design WhatsApp | daily.dev
og:description: This post outlines how to design a high-level system architecture for a messaging app similar to WhatsApp. Key points include handling 10 billion messages...
og:url: https://daily.dev/posts/system-design-interview-design-whatsapp-zmrnpocfy
og:image: https://api.daily.dev/og/posts/zmrNpOcfY.png
og:image:alt: System Design Interview: Design WhatsApp
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# System Design Interview: Design WhatsApp

**[gitconnected](https://daily.dev/sources/gc)** · 5 min read · 1331 upvotes · 37 comments

## Summary

This post outlines how to design a high-level system architecture for a messaging app similar to WhatsApp. Key points include handling 10 billion messages daily with plans to double, using RESTful APIs for compatibility, employing WebSockets for real-time communication, and using message queues like Kafka or RabbitMQ for efficient message distribution. The databases considered are NoSQL options like Cassandra and DynamoDB, emphasizing sharding and partitioning for scalability. End-to-end encryption, handling peak traffic, and future enhancements like group chats and media handling are also discussed.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://levelup.gitconnected.com/system-design-interview-design-whatsapp-779fa385ef08>

## Community discussion

Top comments from developers on daily.dev.

**@ashwanthbalakrishnan** · 35 upvotes

> Some conception on WhatsApp is that first they don't use HTTP requests to send messages but rather use Web sockets as the main method for sending. Also they don't store any messages on their server. When a user sends a message, if the receiver is online and connected to the web socket they would receive the message immediately. If the user is offline a push notification would be sent to their device and tell it to connect to the socket in the background to receive the message. Until then the message is stored in a cache memory encrypted securely.

**@archduke** · 32 upvotes

> This post exactly highlights the problem I have with most System Design articles, Coming from a company which has seen petabytes of scale you rarely employ Rest APIs (unless you are stupid and deploy 400-500 replicas of the same) for ingestion, rather there are tools like MQTT (which Whatsapp actually uses to ingest messages) are efficient technologies to reduce both infra and HTTP overhead.

**@isaacwhiz** · 3 upvotes

> The real gist is in the comments always

**@pritam0077** · 3 upvotes

> Is nosql a only solution for designing high intensive application can't SQL do the job?

**@abdulsamadyakubu32** · 2 upvotes

> very interesting

## Similar posts on daily.dev

- [Don’t just attend KubeCon \+ CloudNativeCon, Merge Forward your experience\!](https://daily.dev/posts/don-t-just-attend-kubecon-cloudnativecon-merge-forward-your-experience--l0rpp73x8) · CNCF · 1 upvotes · 0 comments
- [Announcing H2 2026 KCDs](https://daily.dev/posts/announcing-h2-2026-kcds-m96goajm1) · CNCF · 1 upvotes · 0 comments
- [Two months of Open Community Groups](https://daily.dev/posts/two-months-of-open-community-groups-asf52zhbs) · CNCF · 0 upvotes · 0 comments
- [CNCF Unveils Schedule for KubeCon \+ CloudNativeCon Europe 2026](https://daily.dev/posts/cncf-unveils-schedule-for-kubecon-cloudnativecon-europe-2026-ikhcoa5cb) · CNCF · 2 upvotes · 0 comments
- [CNCF Debuts KubeCon \+ CloudNativeCon Japan 2026 Schedule](https://daily.dev/posts/cncf-debuts-kubecon-cloudnativecon-japan-2026-schedule-xp5pyudub) · CNCF · 1 upvotes · 0 comments

---

Tags: [#career](https://daily.dev/tags/career), [#nosql](https://daily.dev/tags/nosql), [#webdev](https://daily.dev/tags/webdev)

[View this post on daily.dev](https://daily.dev/posts/system-design-interview-design-whatsapp-zmrnpocfy)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"System Design Interview: Design WhatsApp","url":"https://daily.dev/posts/system-design-interview-design-whatsapp-zmrnpocfy","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/system-design-interview-design-whatsapp-zmrnpocfy"},"datePublished":"2024-06-19T08:03:15.033Z","dateModified":"2025-09-06T02:45:59.433Z","description":"This post outlines how to design a high-level system architecture for a messaging app similar to WhatsApp. Key points include handling 10 billion messages...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/c76c1a76e8a2fde5739c3aeba8db1d72?_a=AQAEuiZ","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/c76c1a76e8a2fde5739c3aeba8db1d72?_a=AQAEuiZ","isAccessibleForFree":true,"articleSection":"gitconnected","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"gitconnected","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/gc","url":"https://daily.dev/sources/gc"},"commentCount":37,"discussionUrl":"https://daily.dev/posts/system-design-interview-design-whatsapp-zmrnpocfy","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1331},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":37}],"keywords":"career,nosql,webdev","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"gitconnected","item":"https://daily.dev/sources/gc"},{"@type":"ListItem","position":3,"name":"System Design Interview: Design WhatsApp"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/system-design-interview-design-whatsapp-zmrnpocfy","comment":[{"@type":"Comment","text":"Some conception on WhatsApp is that first they don’t use HTTP requests to send messages but rather use Web sockets as the main method for sending. Also they don’t store any messages on their server. When a user sends a message, if the receiver is online and connected to the web socket they would receive the message immediately. If the user is offline a push notification would be sent to their device and tell it to connect to the socket in the background to receive the message. Until then the message is stored in a cache memory encrypted securely.","datePublished":"2024-06-24T17:00:31.065Z","dateModified":"2024-06-24T17:01:00.171Z","url":"https://daily.dev/posts/zmrNpOcfY#c-8EeumPTwN","author":{"@type":"Person","name":"Ashwanth Balakrishnan","url":"https://daily.dev/ashwanthbalakrishnan","image":"https://avatars.githubusercontent.com/u/91041406?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":35}},{"@type":"Comment","text":"This post exactly highlights the problem I have with most System Design articles, Coming from a company which has seen petabytes of scale you rarely employ Rest APIs (unless you are stupid and deploy 400-500 replicas of the same) for ingestion, rather there are tools like MQTT (which Whatsapp actually uses to ingest messages) are efficient technologies to reduce both infra and HTTP overhead.","datePublished":"2024-06-23T15:50:41.811Z","dateModified":"2024-06-23T15:51:50.554Z","url":"https://daily.dev/posts/zmrNpOcfY#c-mepBCT0pH","author":{"@type":"Person","name":"Shreyas B","url":"https://daily.dev/archduke","image":"https://lh3.googleusercontent.com/a/ACg8ocJQzoV_KqJ38ldpQQqoP-703UmwvjR8aXq8Z0Dpc_QA=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":32}},{"@type":"Comment","text":"The real gist is in the comments always","datePublished":"2024-07-02T19:49:11.891Z","url":"https://daily.dev/posts/zmrNpOcfY#c-xn6JYrJGu","author":{"@type":"Person","name":"Ssekajja Wavamuno Isaac","url":"https://daily.dev/isaacwhiz","image":"https://media.daily.dev/image/upload/s--jVRbC8hY--/f_auto/v1720623656/avatars/avatar_QUE4aNk2OemETYyk9MIAv"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}},{"@type":"Comment","text":"Is nosql a only solution for designing high intensive application can’t SQL do the job?","datePublished":"2024-07-27T07:12:30.760Z","url":"https://daily.dev/posts/zmrNpOcfY#c-gN5oy1mYf","author":{"@type":"Person","name":"Pritam Panda","url":"https://daily.dev/pritam0077","image":"https://lh3.googleusercontent.com/a/ACg8ocLMoIv33rv1opNrmP1soUX0F7Kjfwc6JXS7zU6zJKc7n3DAlYTt=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}},{"@type":"Comment","text":"very interesting","datePublished":"2024-06-20T12:17:29.113Z","url":"https://daily.dev/posts/zmrNpOcfY#c-p6XRrWGKe","author":{"@type":"Person","name":"Abdulsamad Yakubu","url":"https://daily.dev/abdulsamadyakubu32","image":"https://lh3.googleusercontent.com/a/ACg8ocJ7_JihjsXYd3IxjoffW_dYqVkKgikRm0AnLu3KBENAqPzmtA=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}}]}
```

