Sistem · Offline-First
Sinkronisasi Offline
Kerja tetap jalan tanpa internet: aksi antre aman di outbox, terkirim atomik saat online. Konflik versi tidak pernah digabung otomatis — Anda yang memilih.
Online
Status koneksiOnlineSiap sync batch
Antrean0queued + gagal → kirim
Konflik0Tanpa auto-merge
Tersinkron0Idempoten aman
01Aksi offlineID transaksi + versi
02Antre outboxdi perangkat ini
03Sync batchPOST /sync/batch
04Hasilsynced / konflik manual
Aman konflik (BR-010): server menang bila versi berubah — tidak pernah auto-merge. Aksi final (
approve / sign / issue / publish / keuangan) wajib online dan ditolak dari outbox.Outbox — 0 menunggu
Setiap baris punya ID transaksi unik — kirim ulang tidak akan ganda.
Outbox kosong — semua sinkron ✓
Matikan internet dan buat surat / presensi / kunjungan — aksinya akan antre di sini lalu terkirim otomatis sebagai satu batch idempoten.
① Offline → aksi② Antre + versi③ Online → sync
OFF-01–08:
client_transaction_id cegah ganda · version cegah timpa · konflik tampil side-by-side.