Home›ZPos Kasir›Sync Engine›Sync Engine›Incremental Sync
AKTIF0.1.133rustsyncoptimization

Incremental Sync

Sinkronisasi produk incremental — hanya download yang berubah

JSON

💡 Ide & Konsep

Belum ada ide. Klik Edit untuk menambahkan.

Ringkasan

Test edit dari production API

Data Model

struct RemoteProduk {
    id: String,
    nama: String,
    harga: i64,
    updated_at: Option<String>,
}

struct RemoteProduk {

id: String,

nama: String,

harga: i64,

updated_at: Option<String>,

}

Alur

  • First sync: since=null → full pull
  • Sync berikutnya: since=last_sync_ts → hanya yang berubah
  • Server query: WHERE updated_at > since
  • Client: upsert ke DB lokal, update sync_produk_at
  • Retry 2× kalau fetch gagal

API

GET /api/produk?semua=1&since=2026-10-08T12:00:00Z

Response: [{ id, nama, harga, updated_at }]

GET /api/produk?semua=1&since=2026-10-08T12:00:00Z

Response: [{ id, nama, harga, updated_at }]


Backwards compatible: tanpa `since` = full pull.

Backwards compatible: tanpa since = full pull.

Pitfall

⚠ Ganti tenant → reset sync_produk_at, wajib full pull

⚠ updated_at harus ada DB trigger auto-update

⚠ Jika server belum deploy ?since=, client fallback full pull