WHATS CRM HUB

Arsitektur & Skala

Satu Sistem, Lima Tingkat

Sistem yang Sama Melayani 5 Customer Pertama Anda dan 5.000 Customer ke Depan

Anda tidak perlu rewrite apapun saat bisnis tumbuh. Cukup pindah ke server lebih besar atau pisahkan komponen. Hooks-nya sudah ada di kode.

Salah satu pertanyaan paling sering dari calon mitra reseller: "kalau saya mulai kecil, terus customer saya tumbuh ribuan, sistemnya sanggup nggak?". Jawabannya: sanggup, tanpa rewrite. Halaman ini menunjukkan jalan dari Tier 1 (4GB VPS Contabo Rp 200rb/bulan) sampai Tier 5 (multi-region Kubernetes).

Semua angka di bawah berasal dari load test internal nyata di kode (lihat docs/system/LOAD_TEST.md, 1281 baris) — bukan estimasi marketing. Harga server adalah harga publik 2026 di Indonesia (Hetzner Cloud, Contabo, Biznet GIO, DigitalOcean Singapura).

Cara Hitung Kebutuhan Anda

Formula Sederhana untuk Estimasi RAM & Disk

Sebelum pilih tier, hitung dulu kira-kira kebutuhan Anda dengan formula ini.
~2 MB
RAM per device WhatsApp Web

1 customer biasanya pakai 1-3 device WhatsApp. Jadi 100 customer ≈ 100-300 device ≈ 200-600 MB RAM hanya untuk session whatsmeow.

~1 KB
Disk per pesan tersimpan

1 customer kirim/terima rata-rata 50-200 pesan/hari. 100 customer × 100 pesan × 365 hari ≈ 3.6 GB/tahun (bisa di-archive).

~80 KB
RAM per koneksi WebSocket aktif

1 customer biasanya buka 1-3 tab dashboard. 100 customer ≈ 200 koneksi WS aktif ≈ 16 MB RAM.

~150 byte
Memory per task broadcast pending

Broadcast 100rb pesan ≈ 15 MB Asynq queue payload. Aman di Tier 2 (6-8 GB RAM).

Rule of thumb: 1 customer aktif ≈ 5-10 MB RAM (whatsmeow + WS + buffer). 100 customer = ~500 MB-1 GB RAM dipakai untuk customer-state. Sisanya untuk OS, Postgres, Redis, dan margin.

Journey Skala — 5 Tingkat

Mulai Murah, Naik Level Saat Bisnis Tumbuh

Tidak ada vendor lock-in. Tidak ada rewrite. Tinggal pindah server atau tambah komponen.
🌱
Tier 1

Mulai (Bulan 1–3)

Pilot, demo, pre-revenue
1–10 customer
Sampai 10rb pesan/hari
Cost
Rp 200rb–400rb/bulan
Spec
1 VPS: 2 vCPU × 4 GB × 50 GB SSD
Providers
Contabo VPS S, Hetzner CX22, DigitalOcean Basic, Biznet GIO mini
Cocok untuk
Reseller yang baru mulai, agency yang test market, internal staging.
Highlights
  • Semua komponen co-located (App + Worker + Postgres + Redis di 1 server)
  • 4GB cukup karena traffic masih rendah, queue belum penuh
  • Modal awal di bawah Rp 500rb — risiko bisnis kecil
🌿
Tier 2

Tumbuh (Bulan 3–12)

Customer berbayar pertama, modal kembali
10–100 customer
Sampai 100rb pesan/hari
Cost
Rp 600rb–1,2jt/bulan
Spec
1 VPS: 4 vCPU × 8 GB × 100 GB NVMe
Providers
Contabo VPS M, Hetzner CX32, Biznet GIO Standard
Cocok untuk
Sweet spot untuk 80% reseller UMKM. Modal harusnya sudah balik di bulan 2-3 (10 customer × Rp 200rb = Rp 2jt revenue).
Highlights
  • Cukup naikkan DB_MAX_OPEN_CONNS=60, Asynq concurrency tetap 50
  • Postgres tuning: shared_buffers=2GB
  • Sudah aman untuk broadcast 50rb detail per kampanye
  • Backup otomatis daily — Rp 50rb tambahan untuk snapshot
🌳
Tier 3

Berkembang (Tahun 1–2)

Sudah punya cash flow stabil, mau scale-up
100–500 customer
Sampai 500rb pesan/hari
Cost
Rp 3jt–5jt/bulan total
Spec
4 server: App (4×8GB) + Worker (4×8GB) + Postgres (4×16GB×200GB) + Redis (2×4GB)
Providers
Hetzner Cloud (Helsinki/Singapore), Biznet GIO Cloud, AWS Lightsail
Cocok untuk
Reseller besar dengan banyak sub-tenant, atau enterprise mid-tier yang internal multi-divisi.
Highlights
  • Postgres dipisah ke server sendiri (shared_buffers=4GB)
  • Redis dedicated (queue + throttle + pubsub)
  • Setup ops-only — kode tidak perlu berubah
  • Replica Postgres opsional untuk read-heavy
🏢
Tier 4

Skala (Tahun 2+)

Sudah enterprise, butuh HA + SRE
500–2.000 customer
Sampai 1 juta pesan/hari
Cost
Rp 12jt–20jt/bulan total
Spec
9 server: App×2 (LB) + Worker×2 (sharded) + Postgres primary (8×32GB) + replica + Redis×2 + monitoring + PgBouncer
Providers
Hetzner Cloud, AWS Singapore, Biznet GIO Cloud Enterprise
Cocok untuk
Agency besar, reseller dengan ribuan sub-tenant, brand korporat dengan team operasional.
Highlights
  • API stateless di belakang Load Balancer — high availability
  • Worker di-shard per business_id hash range
  • Postgres primary + replica (read-heavy ke replica)
  • Monitoring lengkap: Prometheus + Grafana + Loki
  • Butuh 1 SRE/devops minimum untuk capacity planning rutin
🏛️
Tier 5

Enterprise / Multi-Region

Customer global, regulasi data residency
2.000+ customer
5 juta+ pesan/hari
Cost
Rp 80jt–240jt/bulan tergantung cloud + region
Spec
Kubernetes (10–30 pod auto-scale) + managed Postgres + managed Redis + CDN + multi-region
Providers
AWS / GCP / Azure (multi-region: Singapore, Saudi Arabia, São Paulo), Supabase Pro, Upstash
Cocok untuk
Brand global, regulasi compliance ketat (Saudi PDPL data residency, Brazil LGPD), white-label SaaS skala SEA + Timur Tengah.
Highlights
  • Postgres managed (RDS / Neon / Supabase) — auto-failover, point-in-time recovery
  • Redis cluster mode (Elasticache / Upstash)
  • Region-pinning per tenant (compliance Saudi PDPL)
  • CDN untuk static asset (CloudFront, Cloudflare)
  • Estimasi: $5.000–$15.000/bulan tergantung region + provider

Catatan: harga di atas tidak termasuk bandwidth (biasanya 5–20 TB termasuk gratis di Hetzner/Contabo) dan storage backup eksternal.

Apa yang Dijaga Sistem Otomatis?

Anda Tidak Perlu Pintar — Sistem yang Pintar

Beberapa risiko klasik di skala besar (queue runaway, throttle violation, memory leak) sudah dijaga otomatis.
Backpressure Queue (Maks 50.000)

Kalau antrian broadcast penuh, sistem tolak pickup baru — tidak crash, tidak OOM. Pelanggan tetap dapat error message yang jelas.

Token Bucket per Nomor (Anti 429 Meta)

250 RPS per phone, otomatis. Anda tidak perlu khawatir kena rate limit Meta Graph API.

Heartbeat Lock (Anti Throttle Violation)

Kalau heartbeat lock hilang (instance lain ambil alih), batch dibatalkan otomatis — tidak ada double-send ke device sama yang bisa trigger WhatsApp ban.

Statement Timeout 30s

Query lama otomatis di-cancel — tidak ada goroutine yang block tak terbatas walau ada bad query.

Graceful Shutdown

Saat deploy ulang, sistem drain request + close koneksi WS dengan timeout 1 detik per client. Tidak ada data corrupt karena force-kill.

Retry Eksponensial (Asynq)

Task gagal? Auto-retry dengan backoff cerdas. Anda hanya lihat task yang benar-benar tidak bisa diselesaikan.

Pertumbuhan = Konfig, Bukan Rewrite

Naik Tier Tanpa Sentuh Kode

Berikut yang berubah saat Anda naik tier — semua di level config/ops, bukan source code.
DB Connection Pool

Tier 1: DB_MAX_OPEN_CONNS=25. Tier 4: =120. Cukup ubah env variable, restart.

Worker Concurrency

Tier 1: concurrency=20. Tier 4: =200 per worker × 2 worker shard. Env variable saja.

Worker Sharding

Tier 4 mulai pakai WORKER_SHARD_RANGE=0-50% dan =50-100% di 2 instance — hash range business_id split otomatis.

Redis Split

Tier 4: queue, throttle, dan pubsub bisa pakai 2 Redis instance terpisah via REDIS_QUEUE_URL + REDIS_CACHE_URL — sudah ready.

Postgres Replica Read

Tier 4: query read-heavy bisa diarahkan ke replica via db.Pool.Read() — scaffold sudah ready, opt-in per repository saat butuh.

Health Check & Cache Invalidate

Endpoint /health cek DB + Redis. Cache invalidate cross-instance via Redis pub-sub — sudah jalan untuk multi-replica deploy.

Bingung Pilih Tier yang Tepat?

Ngobrol dengan tim kami 30 menit — kami bantu hitung sizing berdasarkan jumlah customer target, volume pesan estimasi, dan budget infrastruktur.