Anatomy Tech Stack WhatsApp (2025 Edition)

← Kembali ke Blogs

Anatomy Tech Stack WhatsApp (2025 Edition)

Ditulis olehkukuhtw·
0 unik hari ini 2 unik 7 hari 16 unik 30 hari 130 total unik
Anatomy Tech Stack WhatsApp (2025 Edition)
Iklan

Yo, bro! Kali ini gue bakal bongkar tuntas sih gimana sih WhatsApp bisa nge-handle miliaran pengguna tanpa nge-lag. Yuk, kita kulik bareng Anatomy Tech Stack WhatsApp 2025 Edition. Catetan, semua link gue tulis full supaya ente bisa langsung copy-paste, no ribet klik-klik!


1. Fondasi Server

  • Bahasa utama: Erlang/OTP
  • Kenapa Erlang? Karena dia jago banget buat concurrency & fault-tolerance. Tiap pesan itu dianggap sebagai "process" super-ringan di VM BEAM, jadi bisa hot-reload tanpa bikin downtime. Gokil kan?
  • Sumber: https://blog.quastor.org/p/whatsapp-scaled-1-billion-users-50-engineers

  • OS: FreeBSD (tuned kernel)
  • Kernel-nya di-tweak supaya networking di-level kernel bisa handle jutaan koneksi TCP dengan socket & epoll-like event loop Erlang yang nggak blocking.
  • Sumber: https://highscalability.com/how-whatsapp-grew-to-nearly-500-million-users-11000-cores-an/

  • Infra fisik: Awalnya SoftLayer, sekarang udah jadi bagian dari Meta Private Cloud plus colo POP di lebih dari 200 lokasi buat ngejaga latency di bawah 50 ms.
  • Cluster Erlang di-shard berdasarkan hash nomor telepon, routingnya konsisten dan state-nya di-replicate lewat "gen_server" supervision tree.
  • Sumber sama seperti Erlang & FreeBSD di atas.


2. Data & Storage

  • Metadata koneksi & session: Mnesia (DB bawaan Erlang)
  • Ini in-memory replika yang juga punya commit-log ke disk, jadi kalau ada node down bisa fail-over dalam hitungan detik.

  • Pesan terenkripsi (store-and-forward): RocksDB custom + S3-like object store di Meta
  • Yang disimpen cuma payload terenkripsi aja, dan pesan yang nggak diterima bakal dihapus otomatis setelah 30 hari (Time-To-Live).

  • Media (foto, video, stiker): Cold tier object storage + CDN Edge di POP Meta
  • Upload media lewat HTTPS PUT, terus URL media dikirim terpisah di dalam "message node" dan tetep dienkripsi end-to-end (E2EE).


3. Protokol Pesan ⚙️

1. Signal Protocol

Implementasi lengkap sesi "Double-Ratchet", Pre-Key, dan ECDH Curve25519. Kunci "root" per device, tiap pesan pake kunci sekali pakai biar aman banget (Forward-Secrecy).

White-paper resmi: https://faq.whatsapp.com/general/security-and-privacy/end-to-end-encryption

Analisis publik: https://requestly.com/blog/how-whatsapp-ensures-chat-security-with-end-to-end-encryption/


2. Flow singkat

Client → Encrypt(payload, sessionKey) → POST /v2/messages

Server → Queue by recipientShard

Recipient → GET /sync → Decrypt(payload, sessionKey)

Semua ini dijalanin oleh proses Erlang yang independen, jadi kalau crash satu pesan nggak bakal ngaruh ke jutaan pesan lainnya.


4. Panggilan Suara & Video


5. Multi-Device & Interop (DMA 2024-2025)

Arsitektur baru sejak 2021 bikin tiap device punya identitas sendiri, dengan kunci sesi di-fan-out lewat "Device Fanout Service". Jadi, ponsel bukan lagi sumber kebenaran utama.

URL teknik: https://engineering.fb.com/2021/07/14/security/whatsapp-multi-device/


Interoperabilitas EU DMA (2024+): WhatsApp buka endpoint interop gateway berbasis Signal-Protocol Bridge biar aplikasi pihak ketiga kayak Matrix, Telegram bisa tukar pesan terenkripsi.

Spec internal dirilis di sini: https://engineering.fb.com/2024/03/06/security/whatsapp-messenger-messaging-interoperability-eu/


6. Pipeline Bisnis & API

  • WhatsApp Business API: REST + WebHook, containerized (Docker). Pesan bisnis lewat endpoint /v1/messages, bulk dikendalikan dengan ratelimit 250 msg/s per nomor telepon.

  • Payments (India, Brasil): UPI / PIX rails + Meta Pay service mesh (gRPC). Tokenisasi kartu & PIN, plus integrasi sandbox di https://developers.facebook.com/docs/whatsapp


7. Observability & Ops

  • Monitoring pake Grafana + Prometheus federated, terus alert via Opsgenie.

  • Tracing pake OpenTelemetry buat gRPC & HTTP/2, sampling 0.1 %.

  • Chaos Testing dengan tool internal "Fury" yang nyuntik node-kill & latency spikes ke cluster Erlang.


8. Ringkasan Alur Kerja Pesan

  1. User A ngetik teks → client library nge-Encrypt() pakai kunci sesi.
  2. Payload + metadata (jid, timestamp) di-POST ke Chat Router (Erlang).
  3. Router push ke Queue (Mnesia/RocksDB) di shard penerima.
  4. User B nge-pull lewat Signal Server, terus decrypt lokal.
  5. Kalo User B offline lebih dari 30 hari, pesannya otomatis dihapus (auto-TTL).

Semua langkah ini independen, event-driven, dan scalable horizontal. Makanya, cuma butuh kurang dari 200 engineer buat layani lebih dari 2 miliar pengguna harian!


9. Kenapa Stack Ini Efektif?

  • Erlang kasih jutaan proses ringan & hot code swap, pas banget buat chat real-time.
  • FreeBSD dengan zero-copy sendfile dan kqueue ngurangin CPU/network overhead.
  • Signal Protocol jaga privasi walau data disimpen di cloud Meta.
  • WebRTC + WASP bikin panggilan lancar walau kena NAT/Firewall ketat.
  • Sharded Fan-out + object store CDN misahin teks sama media, bikin hemat dan kenceng.
  • Interoperability Layer siap jawab regulasi DMA tanpa ngorbanin E2EE.

Dengan kombinasi gila-gilaan ini, WhatsApp tetap enteng di hape low-end tapi sanggup nangkep trafik lebih dari 140 miliar pesan per hari (estimasi 2025). Mantap, kan?


---

Summary Interaktif

Jawaban:
WhatsApp menggunakan Erlang/OTP karena bahasa ini sangat unggul dalam mengelola concurrency dan fault-tolerance. Setiap pesan dianggap sebagai proses ringan di VM BEAM, memungkinkan hot-reload tanpa downtime, sehingga sistem bisa tetap berjalan lancar meskipun ada pembaruan atau masalah.

Jawaban:
FreeBSD dengan kernel yang di-tweak memungkinkan networking di level kernel untuk menangani jutaan koneksi TCP secara efisien. Penggunaan socket dan event loop ala epoll yang non-blocking pada Erlang membantu menjaga performa tinggi dan responsif terhadap banyak koneksi secara bersamaan.

Jawaban:
Cluster Erlang yang di-shard berdasarkan hash nomor telepon memungkinkan routing pesan yang konsisten dan state yang di-replikasi melalui gen_server supervision tree. Ini membantu mendistribusikan beban secara merata dan menjamin ketersediaan data dalam sistem terdistribusi WhatsApp.

Jawaban:
Metadata koneksi dan session disimpan di Mnesia, database bawaan Erlang yang bersifat in-memory dengan commit-log ke disk untuk fail-over cepat. Pesan terenkripsi disimpan menggunakan RocksDB custom dan object store mirip S3 di Meta, dengan hanya payload terenkripsi yang disimpan dan pesan yang tidak diterima dihapus otomatis setelah 30 hari.

Jawaban:
Media seperti foto, video, dan stiker disimpan di cold tier object storage dan didistribusikan melalui CDN Edge di POP Meta. Upload media dilakukan via HTTPS PUT, dan URL media dikirim terpisah dalam message node, tetap dienkripsi end-to-end untuk menjaga privasi.

Jawaban:
Signal Protocol menggunakan sesi Double-Ratchet, Pre-Key, dan ECDH Curve25519 untuk enkripsi end-to-end. Setiap perangkat memiliki kunci root, dan setiap pesan menggunakan kunci sekali pakai untuk memastikan forward secrecy sehingga keamanan pesan sangat terjaga.

Jawaban:
Client mengenkripsi payload dengan sessionKey lalu mengirim POST ke /v2/messages. Server mengantre pesan berdasarkan recipientShard. Recipient melakukan GET /sync untuk menerima pesan dan mendekripsi payload menggunakan sessionKey. Proses ini dijalankan oleh proses Erlang independen sehingga crash satu pesan tidak memengaruhi yang lain.

Jawaban:
Signalling menggunakan proprietary binary ProtoBuf di atas HTTPS. Media path memakai WebRTC (SRTP + DTLS-SRTP) dengan default P2P dan fallback relay menggunakan WASP (WhatsApp STUN Protocol) yang satu-port dan lebih ramah firewall. Media dienkripsi end-to-end dengan opsi tambahan untuk melindungi alamat IP dan menyaring panggilan tidak dikenal.

Jawaban:
DMA memberikan setiap device identitas dan kunci sesi sendiri yang di-fan-out melalui Device Fanout Service. Hal ini membuat ponsel bukan lagi sumber kebenaran utama, memungkinkan multi-device independen yang tetap sinkron dan aman.

Jawaban:
WhatsApp membuka endpoint interop gateway berbasis Signal-Protocol Bridge yang memungkinkan aplikasi pihak ketiga seperti Matrix dan Telegram bertukar pesan terenkripsi dengan WhatsApp tanpa mengorbankan end-to-end encryption.

Jawaban:
WhatsApp Business API menggunakan REST dan WebHook, di-containerized menggunakan Docker. Pesan bisnis dikirim melalui endpoint /v1/messages dengan pengendalian bulk menggunakan ratelimit 250 pesan per detik per nomor telepon untuk mengatur beban.

Jawaban:
WhatsApp menggunakan UPI dan PIX sebagai rails pembayaran yang terintegrasi dengan Meta Pay service mesh berbasis gRPC. Sistem ini mencakup tokenisasi kartu dan PIN serta menyediakan sandbox integrasi di developers.facebook.com/docs/whatsapp.

Jawaban:
WhatsApp menggunakan Grafana dan Prometheus federated untuk monitoring, alert dikirim lewat Opsgenie. Tracing dilakukan dengan OpenTelemetry untuk gRPC dan HTTP/2 dengan sampling 0.1%. Chaos Testing dilakukan dengan tool internal bernama Fury yang menyuntikkan node-kill dan latency spikes ke cluster Erlang untuk menguji ketahanan.

Jawaban:
User A mengetik teks, client library mengenkripsi payload pakai kunci sesi. Payload dan metadata di-POST ke Chat Router Erlang, kemudian router mendorong pesan ke queue (Mnesia/RocksDB) di shard penerima. User B menarik pesan lewat Signal Server dan mendekripsinya secara lokal. Pesan yang tidak diterima selama lebih dari 30 hari dihapus otomatis.

Jawaban:
Erlang memungkinkan jutaan proses ringan dan hot code swap untuk chat real-time. FreeBSD dengan zero-copy sendfile dan kqueue mengurangi overhead CPU dan jaringan. Signal Protocol menjaga privasi meski data tersimpan di cloud. WebRTC dan WASP membuat panggilan lancar di jaringan yang ketat firewall. Sharded fan-out dan object store CDN memisahkan teks dan media sehingga hemat dan cepat. Interoperability Layer mematuhi regulasi tanpa mengorbankan E2EE.
Artikel lain dari penulis ini
Iklan