Apa itu Real-time? — Realtime

Pernah nge-chat di WhatsApp, balasan langsung muncul tanpa refresh? Atau Google Docs yang kerjasama bareng — temen ngetik di laptop dia, langsung muncul di…

Pernah nge-chat di WhatsApp, balasan langsung muncul tanpa refresh? Atau Google Docs yang kerjasama bareng — temen ngetik di laptop dia, langsung muncul di laptop kamu? Atau Tokopedia yang nampilin notifikasi "barang sudah dikirim" tepat saat kurir pickup? Itu **real-time**: data update saat event terjadi, gak nungguin user refresh. Tanpa real-time, web kerasa kuno (kayak Friendster era 2005, harus F5 terus buat liat update).

💡 Real-time != instant. Real-time berarti delay sangat kecil (millisecond), bukan literal nol. Trader saham minta < 10ms. Chat OK 100-500ms. Live dashboard OK 1-2 detik. Tentukan latency requirement berdasarkan use case sebelum pilih teknologi.

Real-time di Web

Real-time berarti data ter-update di client saat terjadi perubahan di server, tanpa user harus refresh. Chat, notifications, collaborative editing, live dashboard — semua butuh real-time.

Request-Response vs Real-time

// Traditional (request-response)
Client: "Ada pesan baru?" → Server: "Tidak."
Client: "Ada pesan baru?" → Server: "Tidak."
Client: "Ada pesan baru?" → Server: "Ya! Ini pesannya."
// Polling: client terus bertanya

// Real-time (push)
Client: "Kasih tahu saya kalau ada pesan baru" (subscribe)
... (silence) ...
Server: "Pesan baru dari Budi: Halo!" (push)
Server: "Pesan baru dari Rina: OK!" (push)
// Server push saat event terjadi

Use Cases

Technologies

🎭 Analogi sehari-hari

Polling = nelpon orang setiap menit nanya "udah ada update?". Capek + boros pulsa. Real-time (WebSocket) = saluran telepon yang tetap nyala. Kalau ada update, langsung kasih tau. Kalau gak ada, diam aja. Lebih efisien, latency rendah. Real-time = telepon, polling = SMS continuous.

⚠️ Jebakan yang sering ditemui

TL;DR: Real-time = data update saat event terjadi, no refresh. Use cases: chat, notifications, live dashboard, collaborative edit, gaming. 4 teknologi: WebSocket (bidirectional, paling fleksibel), SSE (server→client, simple), Long Polling (HTTP fallback), WebRTC (P2P video/audio). Pilih sesuai latency + bidirectional needs. Wajib di app modern.

Yang akan kamu pelajari