Tinkerbench Labs
·1 menit baca·(Diperbarui: 21 Okt 2026)

Memilih IndexedDB vs SQLite WASM untuk Aplikasi Offline-First

Catatan evaluasi teknis penyimpanan lokal browser untuk NexaPOS: performa, ukuran bundle, dan kemudahan migrasi skema.

#architecture#offline-first#indexeddb#nexapos

Dalam merancang NexaPOS, salah satu keputusan paling krusial adalah memilih storage engine lokal di sisi browser.

Mengapa Membutuhkan Storage Lokal?

Ketika kasir sedang melayani antrean ramai dan koneksi WiFi terputus, aplikasi tidak boleh freeze atau menolak input transaksi. Transaksi harus tetap tercatat secara instan ke media lokal dan kemudian disinkronisasikan.

Evaluasi Opsi

  1. SQLite WASM:
    • Kelebihan: Sintaks SQL standar, constraint database sangat ketat.
    • Kekurangan: Ukuran binary WASM cukup besar (~800KB), waktu inisialisasi awal lebih lambat di HP murah.
  2. IndexedDB murni / IDB wrapper:
    • Kelebihan: Dukungan bawaan browser tanpa beban bundle tambahan, konsumsi memori rendah.
    • Kekurangan: API async berbasis key-value cursor yang lebih rumit jika memerlukan relasi kompleks.

Keputusan

Untuk kebutuhan NexaPOS pada tahap prototype, IndexedDB dipilih karena prioritas utamanya adalah kecepatan startup di perangkat mobile dan minimnya payload awal.