BARUTeam, Domain & Bundle
Diskon 30%!
Detail
tursosqliteedge-databaseembedded-replicasperformancehelipod

Integrasi Turso di Helipod: SQLite Edge Database untuk Aplikasi Indonesia

Tim Helipod

6 menit baca

Cara setup Turso database di Helipod. SQLite edge database, embedded replicas, dan branching — cocok untuk aplikasi yang butuh performa tinggi di Indonesia.

Database lambat karena jarak? Kalau server database kamu di Eropa tapi user di Indonesia, latency bisa mencapai 300ms+. Itu terlalu lambat untuk aplikasi modern.

Sekarang ada solusi edge database.

Helipod sekarang terintegrasi dengan Turso — platform SQLite edge database yang menyimpan data lebih dekat ke user kamu. Dengan integrasi ini, aplikasi kamu bisa dapat latency < 10ms untuk user di Indonesia.

Kenapa Edge Database?

Masalah Database Traditional

User di Jakarta → Request ke server di Eropa → 300ms latency
User di Surabaya → Request ke server di Eropa → 320ms latency
User di Bandung → Request ke server di Eropa → 310ms latency

Akhirnya:

  • Aplikasi lambat
  • User experience jelek
  • Bounce rate tinggi

Solusi Edge Database

User di Jakarta → Request ke edge server Jakarta → 5ms latency
User di Surabaya → Request ke edge server Singapore → 20ms latency
User di Bandung → Request ke edge server Jakarta → 8ms latency

Hasilnya:

  • Aplikasi cepat
  • User experience membaik
  • Bounce rate berkurang

Kenapa Turso?

Fitur PostgreSQL Turso (SQLite)
Deployment Centralized ✅ Edge (global)
Latency 100-300ms ✅ < 10ms
Read performance Good ✅ Excellent
Write performance Good ✅ Good
Branching Yes ✅ Yes (instan)
Embedded replicas No ✅ Yes
Cost Higher ✅ Lower

Keunggulan Turso

  • Edge database — Data disimpan lebih dekat ke user
  • Embedded replicas — Database lokal di aplikasi kamu
  • SQLite — Database yang sudah terbukti handal
  • Branching — Database branching instan
  • Free tier — 9GB storage, 1 billion row reads

Cara Integrasi Turso ke Helipod

Langkah 1: Buat Akun Turso

  1. Buka turso.tech
  2. Daftar akun gratis
  3. Install Turso CLI:
curl -sSfL https://get.tur.so/install.sh | bash
  1. Login:
turso auth login

Langkah 2: Buat Database

# Buat database baru
turso db create my-database

# Lihat URL database
turso db show my-database --url

# Lihat auth token
turso db tokens create my-database

Langkah 3: Connect ke Helipod

  1. Buka project Helipod
  2. Masuk ke Settings → Integrations
  3. Cari Turso dan klik Connect
  4. Paste HTTP URL dan Auth Token

Langkah 4: Test Koneksi

Buka Database Playground di Helipod:

  1. Masuk ke Project → Turso
  2. Jalankan query:
SELECT 'Hello from Turso!' as message;

Jika berhasil, integrasi sudah siap!

Fitur Unggulan

Database Playground

┌─────────────────────────────────────────┐
│ Query:                                  │
│ SELECT * FROM users WHERE city = 'JKT'  │
├─────────────────────────────────────────┤
│ Result:                                 │
│ ┌────┬──────┬─────┐                     │
│ │ id │ name │ city│                     │
│ ├────┼──────┼─────┤                     │
│ │ 1  │ Budi │ JKT │                     │
│ │ 2  │ Ani  │ JKT │                     │
│ └────┴──────┴─────┘                     │
│ 2 rows (0.3ms)                          │
└─────────────────────────────────────────┘
  • SQL editor — Tulis query dengan syntax highlighting
  • Result viewer — Lihat hasil query dalam tabel
  • Query history — Lihat query sebelumnya
  • Table browser — Explore semua tables

Branch Management

Branches:
├── main (production)
│   ├── users: 1,234 rows
│   ├── orders: 5,678 rows
│   └── products: 100 rows
│
├── staging (testing)
│   ├── users: 100 rows (sample data)
│   ├── orders: 0 rows
│   └── products: 50 rows (test data)
│
└── feature-xyz (development)
    ├── users: 10 rows (dev data)
    └── orders: 0 rows

Embedded Replicas

Turso mendukung embedded replicas — database lokal di aplikasi kamu:

import { createClient } from '@libsql/client';

const client = createClient({
  url: 'libsql://my-database.turso.io',
  syncUrl: 'libsql://my-database.turso.io',
  authToken: 'your-token',
});

// Sync database lokal
await client.sync();

// Baca dari lokal (cepat!)
const result = await client.execute('SELECT * FROM users');

Use Cases

1. Aplikasi Mobile

// Embedded replica untuk mobile app
const db = createClient({
  url: 'libsql://my-app.turso.io',
  syncUrl: 'libsql://my-app.turso.io',
  authToken: process.env.TURSO_TOKEN,
});

// Baca data (dari lokal - cepat!)
const users = await db.execute('SELECT * FROM users');

// Tulis data (ke cloud - reliable!)
await db.execute({
  sql: 'INSERT INTO users (name, email) VALUES (?, ?)',
  args: ['Budi', '[email protected]']
});

2. Aplikasi Web dengan User Global

// Routing berdasarkan lokasi user
const region = getUserRegion(request);

const db = createClient({
  url: `libsql://my-app-${region}.turso.io`,
  syncUrl: 'libsql://my-app-primary.turso.io',
  authToken: process.env.TURSO_TOKEN,
});

// Query ke regional database
const products = await db.execute('SELECT * FROM products');

3. Multi-tenant Application

// Setiap tenant punya database sendiri
async function getTenantDb(tenantId) {
  return createClient({
    url: `libsql://tenant-${tenantId}.turso.io`,
    authToken: process.env.TURSO_TOKEN,
  });
}

// Query tenant-specific
const tenantDb = await getTenantDb('tenant-123');
const data = await tenantDb.execute('SELECT * FROM data');

4. IoT Data Collection

// Collect data dari IoT devices
async function collectSensorData(deviceId, data) {
  const db = createClient({
    url: 'libsql://iot-data.turso.io',
    authToken: process.env.TURSO_TOKEN,
  });

  await db.execute({
    sql: 'INSERT INTO sensor_data (device_id, temperature, humidity) VALUES (?, ?, ?)',
    args: [deviceId, data.temperature, data.humidity]
  });
}

Best Practices

1. Gunakan Embedded Replicas

// Untuk aplikasi yang butuh read performance tinggi
const client = createClient({
  url: 'libsql://my-db.turso.io',
  syncUrl: 'libsql://my-db.turso.io',
  authToken: process.env.TURSO_TOKEN,
});

// Sync secara berkala
setInterval(async () => {
  await client.sync();
}, 60000); // Setiap menit

2. Optimasi Query

-- Tambah index untuk query yang sering dipakai
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_orders_user ON orders(user_id);

-- Gunakan EXPLAIN untuk cek query plan
EXPLAIN SELECT * FROM users WHERE email = '[email protected]';

3. Handle Offline

// Sync saat online, queue saat offline
if (navigator.onLine) {
  await db.sync();
  await processOfflineQueue();
} else {
  await addToOfflineQueue(action);
}

4. Monitor Performance

Di Helipod Dashboard:
- Read latency: 2ms (Jakarta)
- Write latency: 15ms (Singapore)
- Storage: 2.3GB / 9GB
- Row reads: 1.2M / 1B

FAQ

Berapa biaya Turso?

Turso punya free tier yang generous: 9GB storage dan 1 billion row reads gratis. Plan berbayar mulai $29/bulan.

Apakah Turso cocok untuk semua aplikasi?

Turso cocok untuk:

  • Aplikasi yang butuh read performance tinggi
  • Aplikasi dengan user global (edge database)
  • Aplikasi mobile yang butuh offline support
  • Aplikasi yang butuh low latency

Bagaimana jika butuh fitur PostgreSQL?

Turso menggunakan SQLite yang punya fitur berbeda dari PostgreSQL. Kalau kamu butuh fitur PostgreSQL (seperti complex joins, window functions), pertimbangkan untuk pakai Neon.

Bisakah saya migrasi dari PostgreSQL?

Ya! Kamu bisa migrasi dari PostgreSQL ke Turso menggunakan tools seperti sqlite3 dan custom scripts.

Checklist Setup

  • Buat akun Turso
  • Install Turso CLI
  • Buat database
  • Connect Turso ke Helipod
  • Test koneksi
  • Setup embedded replicas (opsional)
  • Monitor performance

Kesimpulan

Edge database dengan Turso + Helipod adalah solusi untuk aplikasi yang butuh performa tinggi dan latency rendah. Kamu bisa:

  • ✅ Data lebih dekat ke user
  • ✅ Latency < 10ms
  • ✅ Embedded replicas untuk offline
  • ✅ Branching instan
  • ✅ Gratis untuk mulai

Butuh bantuan setup? Hubungi [email protected]

Baca juga:

Siap coba Helipod?

Deploy aplikasi kamu sekarang. Gratis, tanpa kartu kredit.

Mulai Gratis →