Dexie.js ile Offline-First (Önce Çevrimdışı) Uygulama Mimarisi
İnternet bağlantısının dalgalı veya tamamen kesik olduğu durumlarda kullanıcıların uygulamanızı kullanmaya devam edebilmesini istemez misiniz? Offline-First yaklaşımı, verileri önce istemcinin yerel veritabanında (IndexedDB) barındırmayı, ardından ağ bağlantısı kurulduğunda bulut sunucularıyla eşitlemeyi hedefler. Polyvo projemizde bu mimariyi başarıyla kurguladık.
IndexedDB ve Dexie.js Kolaylığı
Tarayıcılardaki yerel veritabanı olan IndexedDB, düşük seviyeli ve kullanımı oldukça karmaşık bir API sunar. Dexie.js ise bu API'yi sararak modern Promise tabanlı, kullanımı son derece kolay ve verimli bir arayüz sağlar. Dexie ile veri sorgulamaları, index tanımları ve işlem yönetimi (transactions) çok basit hale gelir.
Senkronizasyon Stratejisi
Çevrimdışı modda yapılan tüm işlemler (yeni kelime ekleme, ilerleme kaydetme) yerel IndexedDB'ye yazılır. Cihaz online olduğunda, bir arka plan servisi (background sync) devreye girerek yerel verilerdeki son değişiklikleri (güncelleme zaman damgalarını kullanarak) Firebase Firestore ile eşitler. Bu sayede veri kayıpları tamamen engellenmiş olur.