Pennybase Memicu Perdebatan: File CSV sebagai Penyimpanan Database Membagi Komunitas Developer

Tim Komunitas BigGo
Pennybase Memicu Perdebatan: File CSV sebagai Penyimpanan Database Membagi Komunitas Developer

Sebuah layanan backend minimalis baru bernama Pennybase telah memicu diskusi yang penuh gairah di komunitas developer, bukan karena apa yang disertakannya, tetapi karena apa yang sengaja ditinggalkannya. Proyek ini mengimplementasikan Backend-as-a-Service lengkap dalam kurang dari 1.000 baris kode Go, namun keputusan paling kontroversialnya adalah menggunakan file CSV alih-alih database tradisional untuk penyimpanan data.

Fitur Utama Pennybase :

  • Kurang dari 1.000 baris kode Go
  • Penyimpanan data berbasis CSV dengan versioning
  • REST API dengan respons JSON
  • Autentikasi melalui session cookies dan Basic Auth
  • Kontrol akses berbasis peran (RBAC)
  • Pembaruan real-time melalui Server-Sent Events
  • Template rendering dengan Go templates
  • Tanpa dependensi eksternal (hanya menggunakan standard library)

Kontroversi CSV Membagi Pendapat

Pilihan untuk menyimpan data dalam file CSV yang dapat dibaca manusia telah menjadi fitur paling polarisasi dari proyek ini. Para kritikus berargumen bahwa menggunakan format CSV di tahun 2025 sama sekali tidak dapat dibenarkan ketika opsi database ringan seperti SQLite sudah tersedia. Mereka menunjuk pada keanehan parsing CSV yang terkenal, kurangnya pengindeksan bawaan, dan kerentanan terhadap kerusakan selama sistem crash.

Namun, para pendukung menyoroti keuntungan praktis yang tidak dapat ditandingi oleh database tradisional. File CSV dapat dibuka dan diedit di aplikasi spreadsheet mana pun, membuat manajemen data dapat diakses oleh pengguna non-teknis. Format ini juga terintegrasi dengan mulus dengan sistem kontrol versi seperti Git, memungkinkan developer untuk melacak perubahan data dengan alat diff standar dan prosedur backup.

CSV (Comma-Separated Values): Format file sederhana di mana data disimpan dalam teks biasa dengan nilai-nilai dipisahkan oleh koma, umumnya digunakan dalam spreadsheet.

Perbandingan CSV vs SQLite:

Fitur File CSV SQLite
Dapat dibaca manusia ✅ Ya ❌ Tidak
Pengindeksan bawaan ❌ Tidak ✅ Ya
Kepatuhan ACID ❌ Tidak ✅ Ya
Ketahanan terhadap kerusakan ❌ Rendah ✅ Tinggi
Ketergantungan eksternal ✅ Tidak ada ❌ Memerlukan driver
Kompilasi lintas platform ✅ Sederhana ❌ Memerlukan CGO

Pertanyaan Performa dan Skalabilitas

Anggota komunitas telah mengangkat kekhawatiran tentang performa Pennybase dibandingkan dengan solusi database yang sudah mapan. Sistem ini menggunakan pendekatan append-only di mana setiap pembaruan data membuat versi baru daripada memodifikasi record yang sudah ada. Meskipun ini menyediakan kemampuan versioning alami, hal ini dapat menyebabkan pembengkakan file dari waktu ke waktu.

Proyek ini mempertahankan indeks dalam memori untuk mempercepat pencarian data, tetapi developer mempertanyakan bagaimana pendekatan ini dapat diskalakan di luar aplikasi kecil. Beberapa anggota komunitas melaporkan kesuksesan menggunakan file CSV untuk situs web statis dengan puluhan ribu record, meskipun kasus penggunaan ini melibatkan konten yang sudah dibangun sebelumnya daripada operasi database dinamis.

Append-only: Metode penyimpanan di mana data baru selalu ditambahkan ke akhir file, tidak pernah memodifikasi entri yang sudah ada.

Kekhawatiran Keamanan dan Pilihan Implementasi

Implementasi keamanan proyek ini telah menarik kritik dari developer yang sadar keamanan. Pennybase menggunakan hashing SHA-256 untuk password, yang dianggap tidak memadai untuk penyimpanan password modern karena kecepatannya. Standar industri merekomendasikan algoritma hashing yang lebih lambat seperti bcrypt yang membuat serangan brute-force lebih sulit.

Penulis mengakui keterbatasan ini, menjelaskan bahwa pilihan tersebut didorong oleh tujuan proyek untuk hanya menggunakan pustaka standar Go tanpa dependensi eksternal. Batasan ini juga mempengaruhi keputusan CSV, karena menyertakan SQLite akan memerlukan dependensi tambahan dan memperumit kompilasi lintas platform.

Filosofi Minimalisme

Meskipun mendapat kritik, Pennybase mewakili eksperimen menarik dalam minimalisme ekstrem. Seluruh sistem muat dalam kurang dari 1.000 baris kode dan dapat diadministrasi menggunakan alat pengeditan teks dasar. Pendekatan ini menarik bagi developer yang menghargai kesederhanaan dan ingin memahami setiap komponen dari stack mereka.

Penulis proyek memposisikannya sebagai latihan edukatif daripada solusi siap produksi, dirancang untuk mengeksplorasi seberapa minimal backend fungsional bisa menjadi. Konteks ini membantu menjelaskan beberapa pilihan tidak konvensional yang memprioritaskan kesederhanaan daripada performa atau keamanan.

Perdebatan seputar Pennybase mencerminkan ketegangan yang lebih luas dalam pengembangan perangkat lunak antara minimalisme dan ketahanan. Meskipun penyimpanan CSV mungkin tampak primitif bagi beberapa developer, hal ini menunjukkan bagaimana batasan kreatif dapat mengarah pada eksperimen arsitektur yang menarik, meskipun tidak cocok untuk setiap kasus penggunaan.

Referensi: Pennybase