SQLite

1 Desember, 2024 · 2-3 menit

Baru saja ngabisin 30 menit ngatur users, roles, dan permissions—untuk aplikasi jurnal yang cuma dipakai sendiri.

Banyak developer terjebak pola pikir aneh: setiap proyek, sekecil apa pun, harus disiapkan seolah akan IPO besok. Database di cloud, autentikasi berlapis, connection pooling, load balancer—padahal cuma bikin pelacak resep atau pengingat siram tanaman.

Lalu saya teringat SQLite.

Kamu nggak perlu "menyalakan" instance. Nggak perlu bikin user atau atur password. Cukup buat sebuah file. Tulis sedikit SQL, dan data-mu hidup dalam file .db itu—tanpa daemon, tanpa socket jaringan, tanpa firewall, tanpa stres.

Dan yang paling keren? Itu sudah cukup.

Ada kesalahpahaman bahwa SQLite bukan "database sungguhan"—cuma buat prototipe atau development lokal. Tapi jujur: sebagian besar proyek kita yang dikerjakan sendiri atau untuk internal memang prototipe dan memang lokal. Jadi kenapa nggak pakai alat yang memang dibuat untuk itu?

"Tapi gimana soal concurrency?" Iya, SQLite memang nggak dirancang untuk 10.000 penulisan bersamaan per detik. Tapi apakah kamu benar-benar butuh itu? Sering kali, saya adalah satu-satunya pengguna. Kadang dua atau tiga orang. SQLite bisa menangani itu dengan baik—bacaannya sepenuhnya concurrent, dan dengan mode WAL, penulisan jauh lebih baik dari yang kamu kira.

Untuk kebanyakan proyek passion, dashboard internal, atau utilitas kecil, SQLite bukan cuma praktis—tapi sempurna. Dia ikut dengan aplikasimu, mudah dicadangkan, nggak butuh konfigurasi. Bisa disimpan di Git dan kamu lupa dia ada.