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
- Buka turso.tech
- Daftar akun gratis
- Install Turso CLI:
curl -sSfL https://get.tur.so/install.sh | bash
- 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
- Buka project Helipod
- Masuk ke Settings → Integrations
- Cari Turso dan klik Connect
- Paste HTTP URL dan Auth Token
Langkah 4: Test Koneksi
Buka Database Playground di Helipod:
- Masuk ke Project → Turso
- 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: