Back to IF3130 Sistem Paralel dan Terdistribusi

Pilihlah 1 aplikasi yang ada di handphone kalian [Aplikasi yang sama dengan Tugas CAP].

Kemudian jelaskan pendekatan yang diambil oleh aplikasi tersebut terkait dengan Arsitektur nya.

WhatsApp

WhatsApp, dengan lebih dari dua miliar pengguna, tidak dapat dianalisis menggunakan satu pola arsitektur saja. Sebaliknya, WhatsApp menggunakan Arsitektur Hybrid yang menggabungkan beberapa pola arsitektur untuk menangani tugas-tugas spesifik yang berbeda. WhatsApp memadukan pola Client-Server sebagai fondasi, dengan arsitektur Event-Driven (Berbasis Peristiwa) untuk inti pesannya, dan elemen Peer-to-Peer (P2P) serta Edge-Server untuk fitur-fitur khusus seperti panggilan dan media.

Pada dasarnya, WhatsApp adalah sistem Client-Server. Client adalah aplikasi di ponsel kita, dan Server adalah infrastruktur backend masif yang dijalankan oleh WhatsApp/Meta. Server mengimplementasikan Service-Based Architecture (atau Microservices). Ada layanan-layanan terpisah untuk menangani otentikasi pengguna, manajemen profil, daftar kontak, dan (yang paling penting) pengiriman pesan.

Untuk pengiriman pesan, WhatsApp menggunakan Event-Driven Architecture (EDA).

  1. Pengiriman (Asinkronus): Saat kita mengirim pesan, client kita (Producer) mengirimkan “event” ke backend WhatsApp. Backend menempatkan pesan ini di event channel (antrian/broker) dan segera mengirim balasan “OK” ke ponsel kita (menghasilkan centang satu). Ini adalah komunikasi asinkronus; client kita tidak terblokir.

  2. Penerimaan (Push): Client penerima tidak menarik (pull) pesan. Sebaliknya, ia memelihara satu koneksi persisten (terbuka) ke server. Server (Processor), yang memonitor event channel, melihat ada pesan baru untuk client tersebut dan langsung mendorong (push) “event” pesan itu melalui koneksi yang sudah terbuka.

Lalu, saat kita mengirim foto atau video, file media tersebut tidak dikirim melalui event channel yang sama dengan teks. WhatsApp menggunakan model yang mirip dengan Edge-Server / Content Delivery Network (CDN).

  1. Media (foto/video) diunggah ke server penyimpanan media (edge server) yang terpisah.

  2. Server ini merespons dengan sebuah pointer (seperti URL) ke media tersebut.

  3. Pesan teks (event) yang dikirimkan ke penerima hanyalah pesan kecil yang berisi pointer tersebut (dan thumbnail).

  4. Aplikasi penerima kemudian menggunakan pointer itu untuk mengunduh media dari edge server terdekat.

Untuk panggilan suara dan video, latensi menjadi masalah. Di sini, WhatsApp menggunakan Peer-to-Peer (P2P).

  1. Inisiasi (Server): Saat kita memulai panggilan, client kita menghubungi server WhatsApp (model Client-Server). Server bertindak seperti Tracker pada BitTorrent, mengoordinasikan client kita dan client penerima.

  2. Koneksi (P2P): Server membantu kedua client untuk menemukan satu sama lain dan mencoba membangun koneksi P2P langsung. Jika berhasil, data suara/video mengalir langsung antar peers, menghasilkan latensi terendah.

  3. Fallback (Server Relay): Jika koneksi P2P gagal (misalnya karena firewall atau NAT), sistem secara dinamis beralih ke model fallback. Panggilan akan di-relay melalui server khusus (mirip Superpeer). Ini lebih lambat, tetapi menjamin panggilan tetap terhubung.

Kesimpulan

Arsitektur WhatsApp mengadopsi pendekatan hybrid:

  • Service-Based untuk organisasi backend.

  • Event-Driven untuk messaging (mengutamakan skalabilitas dan responsivitas).

  • Edge-Server (CDN) untuk media (mengutamakan efisiensi bandwidth).

  • P2P untuk panggilan (mengutamakan latensi rendah).