KAROBAR · PROBLEM SOLVED · OCTOBER 2026

Problem solved: shop bills that keep working when the internet drops

A queue at the counter does not wait for the internet to return. In a shop, “you are offline” is not an acceptable message. This is the problem that took the most thought in Karobar, and it applies to any small business with unreliable connections, in any country.

About this project

Billing and shop software requested by a restaurant owner in Melbourne, tested first with Pakistani shops, and now growing into an international SaaS product for Australia and Europe.

In short

Karobar keeps a copy of the shop on the device, so bills, stock and payments keep working when the internet drops, and sync when it returns. The trick is making a repeated sync harmless, so nothing is lost or counted twice.

A draft is not enough

Our first version, in mid-October, had an outbox for offline sales and saved drafts. It handled short cuts, but it did not go far enough. While offline, staff also need to find products, see a customer’s balance and take a payment. So later in the month, the device got its own copy of the shop, and almost every action now works on that copy first.

Two directions, two rules

Sync is two separate problems, and each has one simple rule:

  • Going up: each bill made offline carries a reference created on the device, so the server can recognise it even if it is sent twice.
  • Coming down: the device asks for “what changed since last time”, one kind of record at a time, in pages.
  • Deletions are sent as records too, otherwise a removed product would live on in the device forever.

Why we fetch two minutes too much

A record saved at the exact moment of a sync can fall between two fetches and be missed forever. So every fetch overlaps the last one by two minutes. That only works because applying the same record twice changes nothing. Once that is true, “fetch a little too much” is a cheap way to buy safety.

Keeping phones from filling up

A busy shop produces many bills, and phones are small. The owner chooses to keep 6 or 12 months on the device, and older bills, payments and daily totals are dropped locally while staying safe on the server. Bills also come down in smaller pages than other records, because they carry their lines, payments and returns, and a slow connection should never cause a timeout.

What we shipped

  • A local copy of the shop on each device
  • Offline bills, payments and edits that sync automatically
  • Safe references that prevent duplicate bills
  • A 6 or 12 month setting for what stays on the device

Lesson learned

Make repeating an operation harmless first. After that, most sync problems can be solved by simply trying again.