Belajar Drizzle ORM - Database Drivers & Serverless Support
Episode 17 of 21

Belajar Drizzle ORM - Database Drivers & Serverless Support

Driver options untuk PostgreSQL (postgres, pg, Neon, Vercel Postgres), MySQL (mysql2, PlanetScale), dan SQLite (better-sqlite3, libSQL/Turso), Cloudflare D1 edge-native setup, Neon serverless over WebSocket, Turso libSQL at edge, serta connection pooling untuk serverless dan traditional environments.

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 16 kita mempelajari Zod Integration — validasi input dengan drizzle-zod — pada episode ini kita membahas database drivers: pilihan driver untuk setiap database dan dukungan serverless/edge.

Salah satu keunggulan utama Drizzle ORM adalah kompatibilitas dengan berbagai driver dan platform. Memilih driver yang tepat sangat penting untuk performance dan compatibility.

Driver Options

PostgreSQL

DriverTipeUse Case
postgresNativeRecommended — performance terbaik
pgJavaScriptLegacy, alternatif
@neondatabase/serverlessWebSocketNeon serverless
@vercel/postgresHTTPVercel serverless
PostgreSQL dengan postgres driver (recommended)
import { drizzle } from 'drizzle-orm/postgres-js'
import postgres from 'postgres'
 
const client = postgres(process.env.DATABASE_URL!)
const db = drizzle(client)

MySQL

DriverTipeUse Case
mysql2NativeRecommended
@planetscale/databaseHTTPPlanetScale serverless

SQLite

DriverTipeUse Case
better-sqlite3NativeLocal, development
@libsql/clientHTTP/WebSocketTurso/D1 edge

Cloudflare D1

D1 adalah SQLite-compatible database dari Cloudflare yang berjalan di edge:

Cloudflare D1 setup
import { drizzle } from 'drizzle-orm/d1'
 
// D1 binding dari Workers environment
export default {
  async fetch(request: Request, env: Env) {
    const db = drizzle(env.DB)
    const users = await db.select().from(usersTable)
    return Response.json(users)
  },
}

D1 adalah edge-native — cold start sangat cepat, berjalan di 300+ locations global.

Neon Serverless

Neon adalah PostgreSQL over WebSocket — compatible dengan edge:

Neon serverless setup
import { drizzle } from 'drizzle-orm/neon-http'
import { neon } from '@neondatabase/serverless'
 
const sql = neon(process.env.DATABASE_URL!)
const db = drizzle(sql)

Neon menyediakan branching (database branches) dan autoscaling — production-ready untuk serverless.

Turso (libSQL)

Turso adalah SQLite at the edge — global distribution:

Turso setup
import { drizzle } from 'drizzle-orm/libsql'
import { createClient } from '@libsql/client'
 
const client = createClient({
  url: process.env.TURSO_DATABASE_URL!,
  authToken: process.env.TURSO_AUTH_TOKEN!,
})
const db = drizzle(client)

Turso menggunakan embedded replicas — read queries dilayani dari local replica, write dikirim ke primary.

Connection Pooling

Serverless

Driver serverless (Neon, Turso, D1) sudah handle pooling — tidak perlu konfigurasi tambahan.

Traditional

Connection pooling untuk PostgreSQL
import postgres from 'postgres'
 
const client = postgres(process.env.DATABASE_URL!, {
  max: 20,           // Maximum connections
  idle_timeout: 20,  // Close idle connections
  connect_timeout: 10, // Connection timeout
})

Tip

Untuk serverless (Lambda, Vercel Functions), gunakan driver yang mendukung HTTP/WebSocket: postgres (HTTP mode), @neondatabase/serverless, atau @libsql/client. Hindari better-sqlite3 di serverless karena tidak persisten.

Penutup

Pada episode 17 ini, kalian telah memahami Database Drivers & Serverless:

  • PostgreSQL: postgres (recommended), pg, Neon, Vercel Postgres.
  • MySQL: mysql2 (recommended), PlanetScale.
  • SQLite: better-sqlite3 (local), libSQL/Turso (edge).
  • Cloudflare D1: edge-native SQLite.
  • Neon: PostgreSQL over WebSocket.
  • Turso: SQLite at edge dengan embedded replicas.
  • Connection pooling: serverless (driver handles), traditional (manual config).

Di episode 18 selanjutnya kita akan mempelajari Testing dengan In-Memory SQLite — setup test database, unit testing queries, dan integration testing. Sampai jumpa di episode 18!

Belajar Drizzle ORM - Database Drivers & Serverless Support | Belajar Drizzle ORM