Berkenalan dengan PouchDB dan CouchDB

Selama ini, mobile apps yang saya tangani selalu membutuhkan koneksi internet — alias online. Saya tinggal menyiapkan koneksi ke RESTful API di server dan mengolahnya di aplikasi. Kemarin, saya bertemu dengan kasus dimana aplikasi akan digunakan di daerah yang koneksi internetnya sulit. Jadi aplikasi ini harus tetap bisa digunakan pada waktu offline, dan segera mengunggahnya ke peladen (halah…) — segera meng-upload ke server begitu online kembali.

Awalnya saya berpikir menggunakan SQLite seperti biasa dan melakukan operasi sinkronisasi secara manual. Setelah googling dan stack-overflow-ing, saya menemukan artikel yang menyarankan untuk menggunakan PouchDB di sisi client dan CouchDB di sisi server.

Apa itu CouchDB? CouchDB adalah database NoSQL (Not-Only SQL), unconventional database karena bukan berbasis relasional seperti yang biasanya seperti Oracle, MySQL, atau PostgreSQL. NoSQL ini mendapatkan momentumnya akhir-akhir ini karena Big Data. Muncul karena kebutuhan kecepatan akses, clustering, dan map reduce. Ada banyak tipe NoSQL, dan CouchDB ini salah satu contoh yang berjenis document database.

Apa itu PouchDB? PouchDB adalah database yang mendukung protokol CouchDB. Ini dipakai di sisi client (apps, browser, dll), sementara di sisi server memakai CouchDB. Fitur utama PouchDB adalah replikasi dan sinkronisasi sudah tersedia dari awal sehingga programmer tidak perlu repot-repot menulis rutin untuk melakukan sinkronisasi. Ketika offline, PouchDB akan bertindak sebagai local storage. Fungsi aplikasi akan tetap berjalan seperti biasa. Begitu online, PouchDB akan otomatis melakukan sinkronisasi. Upload ke server dan download apa yang belum ada di client.

Sama persis dengan apa yang saya butuhkan. Saya sudah coba di Ionic Framework, mencoba menjalankannya di Android dan berjalan dengan baik. Hanya saja saya harus pusing dengan masalah performance, karena data yang harus disinkronisasi sampai ribuan.

Untunglah, project itu tidak berlanjut dan berhenti sampai prototyping saja. Alhamdulillah, dapat pengetahuan baru.

Leave a Reply

Your email address will not be published. Required fields are marked *