System Design Part 2 Continuing my System Design Blog Series, this post is a deep dive into the Low-Level Design of WhatsApp. 📱 From handling 2 billion daily messages to ensuring high availability, we’ll walk step by step through how WhatsApp is architected at scale. 🚀 High-level estimate Here is our high-level estimate: TypeEstimateDaily active users: (DAU)50 million Requests per second (RPS) : 24K/s Storage (per day) : ~10.2 TB Storage (10 years) : ~38 PB Bandwidth : ~120 MB/s
WhatsApp System Design: Handling 2 Billion Daily Messages
More Relevant Posts
-
When you send a WhatsApp message, it feels instant… but what really happens behind the scenes? When you send a message on WhatsApp, it feels instant. But with 2+ billion users, how does a single system keep up? 👌🏽The Problem: Billions of messages fly around daily, across 180+ countries. Naively storing/sending them would overload servers and spike latency. 👌🏽The Solution: WhatsApp uses a store-and-forward architecture built on Erlang. • Each message is first sent to a WhatsApp server. • If the recipient is online, it’s delivered immediately. • If they’re offline, the message is queued and delivered once they reconnect. All of this runs on Erlang, a language built for telecom systems that can handle millions of concurrent connections with minimal hardware. 👌🏽Analogy: Think of WhatsApp like a post office that never closes. You drop your letter (message), the post office sorts it, and it waits safely until the recipient opens their mailbox. 👌🏽Impact • Reliable messaging at massive scale. • Low server footprint vs. user base. • Offline delivery support keeps trust high. 👌🏽Engineering Lessons • Picking the right language/runtime (Erlang) can unlock scale. • Queueing > dropping. Reliability matters more than speed alone. #SoftwareEngineering #Scalability #SystemDesign #BackendEngineering #TechArchitecture
To view or add a comment, sign in
-
“Observer Design Pattern: The WhatsApp Group of Programming” You know that one WhatsApp group where someone says “Guys, I’m getting married!” …and suddenly 78 people respond with 🎉🥳🥲😱😂💔? Congratulations — you’ve just implemented the Observer Design Pattern. Here’s how it works 👇 Subject (a.k.a. The Drama Source): The one who posts “Big news!” Observers: Everyone else who didn’t mute the group. Notify(): The moment you hit send, chaos begins. Update(): Every observer reacts — some with emojis, some with unsolicited advice, and one guy asking “Who’s the bride?” That’s literally how the Observer pattern works in code: When one object changes state, all its subscribers automatically get the update. It’s great for: ✔ Event-driven systems ✔ Stock price updates ✔ Social media notifications ❌ Not great for your peace of mind In short — "Observer pattern is that friend who never minds his own business." 😅 💡 Moral of the story: If you ever design a system where everyone needs to know everything… Just create a WhatsApp group. Oops, I mean — use the Observer Pattern. #DesignPatterns #Java #ObserverPattern #DeveloperHumor #CleanCode
To view or add a comment, sign in
-
WhatsApp is rolling out a new feature that lets you start a chat with someone directly from the status viewers list. Instead of leaving the status screen to find the contact, users can now tap a button next to the viewer’s name and instantly open a chat. The update also brings quick sharing options, a redesigned status layout, and even a translation feature that supports multiple languages on iOS and Android. #WhatsApp #NewFeature #TechUpdate #SocialMedia
To view or add a comment, sign in
-
-
Check out this post by Rocky Bhatia ! 𝐖𝐡𝐚𝐭 𝐫𝐞𝐚𝐥𝐥𝐲 𝐡𝐚𝐩𝐩𝐞𝐧𝐬 𝐰𝐡𝐞𝐧 𝐲𝐨𝐮 𝐡𝐢𝐭 𝐒𝐞𝐧𝐝 𝐨𝐧 𝐖𝐡𝐚𝐭𝐬𝐀𝐩𝐩? It feels instant—but behind the scenes, there's a beautifully orchestrated system at work. Here’s a breakdown of the WhatsApp Message Flow: Your message is encrypted instantly and sent to WhatsApp’s servers. The server checks if the recipient is online or offline. If online → message is delivered and synced across devices. If offline → message is queued and delivered once they’re back online. Read receipts are sent back when the user reads your message. And yes — all this happens within seconds, securely and efficiently. I visualized the entire architecture in this diagram to simplify how it works. Whether you're into system design, distributed systems, or just curious about real-time messaging, this is a great example to learn from. *There is a typo in step 4 it should be online Want me to break down more real-world systems like this?
To view or add a comment, sign in
-
-
James Russell’s advice from the Clarity Focus Momentum Team Sessions for introducing a new process (like end-of-day reports): Go all in. Implement the new standard tomorrow, the old way is turned off. Use simple, existing tech like a WhatsApp group to keep friction low and compliance high. You’ll need to chase, but consistency is key to making the new standard stick. #BusinessProcess #Standardization #TeamComms #WhatsAppTips #CFMSessions
To view or add a comment, sign in
-
-
Why does WhatsApp have an unlabelled icon which can have two similar actions? One of my juniors once asked me an interesting question - “Why does WhatsApp have a ‘Scan QR Code’ icon on the homescreen? Isn’t that the same icon used to link devices as well? How do users know it’s only for UPI payments?” It’s a fair question, both actions involve scanning a QR code. My answer was simple: icons are patterns we get used to. It’s good design practice to keep standard icons for standard actions, as long as context gives them meaning. On WhatsApp, #UPI payments are a frequent behavior, something users might do every day. Linking a device, however, is a one-time setup; once it’s done, you rarely return to it. That’s why the “Scan QR” icon on the homescreen isn’t labeled and it’s placed where your daily actions live. It’s not confusion; it’s contextual clarity. Sometimes, familiarity and frequency are all the labels you need. #designinplainsight #frequencygivescontext #uxdesign #whatsapp
To view or add a comment, sign in
-
-
Paul Dunlop, Group PM for Android, shared how challenging self-imposed boundaries led to a massive opportunity. "It's worth understanding these boundaries that we create for ourselves... they can also limit you to some of the possibilities that exist outside of your day-to-day." By observing real-life phone setup in retail stores and speaking to non-users, they discovered the core problem was "peace of mind" and anxiety around data transfer. This led to significant changes, like standardising the setup experience, branded "Android Switch," and solving cross-platform issues like WhatsApp migration. This really just scratches the surface, check out the full talk in comments👇
To view or add a comment, sign in
-
-
Building a Rich Text Editor in SwiftUI (with iOS 26 APIs) I am spending weekends exploring new iOS features — and this time, I went deep into the latest SwiftUI text APIs in iOS 26. The goal? To build a fully native Rich Text Editor — no UIKit, no hacks, just clean SwiftUI. Apple’s new text stack has evolved a lot — with AttributedString, AttributedTextSelection, and transformAttributes(in:), it’s finally possible to manage styles like bold, italic, and underline directly in SwiftUI while keeping everything performant and elegant. In my full article, I dive into how to: ✅ Build toolbar actions for bold, italic, underline ✅ Keep toolbar state synced with selection ✅ Handle serialization for saving styled text It’s amazing how much cleaner things have become with the new APIs — definitely one of my favorite updates in iOS 26. Check out the full write-up here: https://lnkd.in/dzf6nXtq
To view or add a comment, sign in
-