Lewati ke konten utama
menjadi.dev
Chapter 14.3 API & Auth Spesialisasi

Real-time Database dan Event Streaming

Data yang sync secara otomatis antar client

Tujuan Pembelajaran

  • Memahami real-time database
  • Bisa setup event streaming

Analogi

Diagram

      Real-time DB = Papan Tulis Bersama
Semua orang lihat perubahan

Event Streaming = Sungai Data
Mengalir terus, bisa dipantau
    

Real-time database memungkinkan kolaborasi tanpa refresh

Penjelasan Konsep

Real-time Database

Real-time Database memungkinkan data otomatis sync antara server dan semua client yang terhubus. Kalau satu client mengubah data, semua client lain melihat perubahan seketika.

Firebase Realtime Database

JSON tree yang sync otomatis. Setiap perubahan di-push ke semua subscriber. Cocok untuk chat, live dashboard, collaborative app.

Supabase Realtime

PostgreSQL dengan realtime subscription. Listen perubahan di table tertentu. Lebih powerful karena SQL query.

Event Streaming

Untuk skala besar, pakai event streaming. Data di-produce ke stream, consumer listen dan process.

Apache Kafka

Distributed event streaming platform. High throughput, persistent, scalable. Topics dan partitions untuk parallel processing.

Use cases event streaming

  1. Activity feed. User action di-produce ke stream.
  2. Analytics. Event stream untuk real-time analytics.
  3. Microservices communication. Decouple services via events.

Inti yang Perlu Dipahami

Bagian ini berfokus pada memahami real-time database., dan bisa setup event streaming. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.

Saat membaca Real-time Database dan Event Streaming, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.

Cara Membayangkannya

Real-time database memungkinkan kolaborasi tanpa refresh. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.

Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.

Saat Melihat Contoh Kode

Contoh kode pada chapter ini memakai bahasa typescript. Bacalah contoh kode sebagai ilustrasi alur, bukan sebagai bagian yang harus langsung dihafal. Supabase realtime listen perubahan PostgreSQL. Kafka producer kirim event ke topic. Consumer process secara async.

Perhatikan nama fungsi, urutan langkah, dan data yang berpindah. Biasanya tiga hal itu sudah cukup untuk memahami hubungan antara teori dan praktik.

Konteks dalam Perjalanan Belajar

Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.

Kamu sudah di bagian lanjutan. Mulai pikirkan bagaimana konsep ini dipakai di dunia kerja — bukan hanya untuk belajar, tapi untuk membangun produk nyata.

Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.

Contoh Kode

typescript
// SUPABASE REALTIME
import { createClient } from '@supabase/supabase-js';
const supabase = createClient(url, key);

const channel = supabase
  .channel('table-changes')
  .on('postgres_changes',
    { event: '*', schema: 'public', table: 'messages' },
    (payload) => console.log('Change:', payload)
  )
  .subscribe();

// KAFKA PRODUCER
await producer.send({
  topic: 'user-events',
  messages: [{
    key: userId,
    value: JSON.stringify({ type: 'login', userId })
  }]
});

Penjelasan Kode

Supabase realtime listen perubahan PostgreSQL. Kafka producer kirim event ke topic. Consumer process secara async.

Prompt AI

Setup Supabase realtime subscription untuk satu table.

Pertanyaan Reflektif

Bedanya real-time database dan event streaming?