Back to blog
Backend

Scaling Socket.io: Kenapa Kamu Butuh Redis Adapter dan Pub/Sub?

Aplikasi Chat milikmu sukses besar. Kamu membeli server baru untuk menampung user. Tapi tiba-tiba pesan chat tidak sampai ke tujuan. Inilah bencana Scaling WebSockets.

super admin·10 Juli 2026·2 min read
Scaling Socket.io: Kenapa Kamu Butuh Redis Adapter dan Pub/Sub?
Article Content

Ilusi Satu Server yang Harmonis

Ketika kamu belajar Socket.io di laptopmu, semua terasa sempurna. Budi dan Siti berada di "Room Chat A". Karena hanya ada 1 Server (1 Mesin Node.js), Server tersebut menyimpan daftar "Orang yang Connect" di dalam memori RAM-nya sendiri. Saat Budi mengirim pesan, Server melihat RAM-nya: "Oh, Siti ada di Room A. Kirim ke Siti!"

Bencana Muncul Saat Menambah Server (Scaling Out)

Tahun depan, Tokomu Viral. Satu server tidak kuat menahan 50.000 koneksi WebSockets. Kamu membelah arsitekturnya (memasang Load Balancer) menjadi 3 Server Node.js terpisah (Server 1, 2, dan 3).

Di sinilah bencana terjadi:

  • Budi terhubung (Connect) secara acak ke Server 1.
  • Siti terhubung ke Server 2.
  • Budi mengirim pesan ke "Room A". Server 1 menerima pesan itu.
  • Server 1 mengecek RAM-nya: "Apakah ada orang selain Budi di Room A? Kosong." Pesan Budi Berhenti di situ dan Tidak Pernah Sampai ke Siti! Kenapa? Karena Server 1 tidak bisa saling melihat memori RAM milik Server 2!

Solusinya: Redis Adapter (Sang Penyambung Lidah)

Untuk menghubungkan ingatan antar-Server Node.js yang terpisah, kita menggunakan alat pihak ketiga: Redis (Fitur Pub/Sub).

Kamu menginstal *library* @socket.io/redis-adapter ke semua *Server Node.js*-mu. Sekarang, cara kerjanya berubah total:

  1. Budi (Server 1) mengirim pesan ke "Room A".
  2. Server 1 TIDAK MENGIRIMNYA LANGSUNG. Server 1 menembakkan pesan itu ke "Speaker Pusat" bernama Redis Pub/Sub.
  3. Redis berteriak ke seluruh jaringan internal: "Woi Semua Server! Ini ada pesan untuk Room A!"
  4. Server 2 mendengar teriakan itu. Ia mengecek RAM-nya: "Eh, Siti ada di aku!" Server 2 pun menyampaikan pesan itu ke layar HP Siti.

Dengan arsitektur Redis Pub/Sub ini, kamu bisa menambah Server Node.js menjadi 100 buah, dan fitur Chat Room milikmu akan tetap terhubung secara gaib dan presisi! Inilah standar dewa merancang aplikasi Real-Time kelas *Enterprise*.

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates