~/VibeHandbook
PDF Gratis

Cloudflare

developers.cloudflare.com

D1

Apa itu ini

Bayangkan sebuah spreadsheet dengan baris dan kolom yang rapi, yang bisa ditanyai aplikasimu dengan pertanyaan spesifik, seperti "tampilkan semua pesanan yang sudah dibayar di bulan Juni." D1 adalah milik Cloudflare — gudang tabel yang rapi dan bisa ditanyai itu — yang dibangun di atas SQLite. ("Serverless" berarti tidak ada server yang perlu kamu siapkan atau jaga tetap berjalan; penyedia layanan yang mengurus semuanya.) SQL (Structured Query Language) adalah bahasa standar untuk bertanya kepada database. Kamu membuat database, menghubungkannya (bind) ke sebuah Worker atau proyek Pages, lalu meng-query-nya dengan SQL biasa lewat JavaScript kecil (Application Programming Interface — kumpulan perintah yang kamu panggil). Tidak ada server yang perlu diatur ukurannya atau connection pool yang perlu dikelola — Cloudflare yang menangani penyimpanan, replikasi, dan penskalaan, dan kamu membayar sesuai jumlah baris yang kamu baca dan tulis.

Kelebihan

  • SQL sungguhan (dialek SQLite) — SELECT, JOIN, transaksi, dan indeks yang sudah familiar.
  • Serverless: tanpa provisioning, tanpa batas koneksi, bisa diskalakan sampai nol.
  • Terintegrasi erat dengan Workers dan Pages lewat satu binding saja.
  • Replikasi baca menempatkan salinan data dekat pengguna untuk latensi baca yang rendah.
  • Murah untuk beban kerja aplikasi pada umumnya, dengan tingkatan gratis yang cukup layak dipakai.

Kompromi (Trade-off)

  • Semantik SQLite: dataset yang sangat besar dan konkurensi penulisan yang sangat berat bukan area unggulannya.
  • Batas ukuran per database berarti data yang sangat besar mungkin perlu sharding (dipecah ke beberapa database) atau R2 (penyimpanan berkas milik Cloudflare).
  • Lebih baru dibanding Postgres/MySQL, jadi tooling dan ekosistemnya masih terus berkembang.
  • Paling cocok diakses dari ; menggunakannya dari luar Cloudflare terasa kurang alami.

Kapan menggunakannya

Pilih D1 untuk data aplikasi dalam proyek yang di-hosting di Cloudflare: data pengguna, konten, pengaturan, metadata sesi — apa pun yang cocok dengan model relasional dan hidup berdampingan dengan aplikasi Workers atau Pages-mu.

Kecocokan dengan vibe coding

D1 adalah pilihan default yang kuat ketika sebuah sudah membangun di atas Workers, karena database, skema, dan query semuanya hidup dalam proyek yang sama. Minta agent untuk menyimpan migrasi dalam berkas .sql yang diberi versi dan menerapkannya dengan Wrangler, supaya skemanya bisa direproduksi. Binding tersebut membuat query menjadi cukup satu baris di dalam handler.

# wrangler.toml
[[d1_databases]]
binding = "DB"
database_name = "app-db"
database_id = "your-d1-id"
# Create a DB and run a migration
npx wrangler d1 create app-db
npx wrangler d1 execute app-db --file=./schema.sql