All features
Reliability

Background sync

Queued sales upload themselves the moment a connection returns — append-only and idempotent, so nothing is ever duplicated.

OutboxSale #a1Sale #b2Sale #c3Server#a1 stored once#b2 stored once#c3 stored onceAppend-only, idempotent — never doubled

Selling offline is only half the promise; the other half is getting those sales safely up to the server without ever creating a duplicate. Background sync does exactly that. When the device regains a connection, the queued sales in the outbox push themselves to the server on their own — the cashier does not press a button or wait.

Append-only and idempotent

Sales are append-only: a completed sale is never edited or overwritten, only added. Each carries the client-minted UUID it was given on the device, and the sync channel dedupes on that UUID — if a push is retried because the connection was flaky, the server recognises the UUID it already has and stores the sale exactly once. A doubled sale is impossible even when the same batch is sent twice.

  • Queued sales upload automatically on reconnect
  • Each sale keyed by its client-minted UUID
  • Server dedupes on that UUID
  • Retries are safe — no duplicate sale
  • Append-only: records are never overwritten

Why it is safe to retry

A shop on shared mobile data will see connections come and go mid-upload. Idempotent sync means a half-finished push can simply be tried again with no risk: whatever already arrived is not re-created, and whatever did not arrive is sent. The outbox keeps a sale until the server confirms it, so nothing is dropped and nothing is doubled.

Idempotency lives in the sync channel — the push path that dedupes on the client UUID. Any process that might retry a sale must go through sync so this guarantee applies; that is precisely why offline queues push through the sync channel rather than firing a plain, non-idempotent sale each time.

See it in your own shop

Start a free 30-day trial — no card required.

Related features