PultrackBlog
EN
The Sync Queue Nobody Talks About: How Offline POS Actually Reconciles Two Cash Drawers

The Sync Queue Nobody Talks About: How Offline POS Actually Reconciles Two Cash Drawers

TL;DROffline-first POS is now a standard architecture, not a niche hack — but most coverage focuses on "sales keep working" and skips what happens when a shop runs two physical registers (or a phone and a tablet) that both go offline and then both try to sync the same shift. That reconciliation moment, not the outage itself, is where small shops actually lose money or trust in the system.

We build Pultrack, a point-of-sale and inventory app for small retailers who deal with unreliable power, patchy data, and often two currencies on the same shelf. So when a wave of engineering write-ups about "offline-first POS" circulates, we read them the way a shopkeeper would: not as architecture diagrams, but as a question of what happens on a Tuesday when the network drops mid-shift and two people are still ringing up customers.

What is actually new in the offline-first conversation?

The recent cluster of technical posts on offline-first point-of-sale design agrees on one thing: offline operation is no longer treated as an edge case to patch around, it's the starting assumption for the whole system.[1] Implementations converge on a familiar stack — a local database on the device (IndexedDB or SQLite), a queue of pending actions, idempotent sync APIs, and some form of conflict resolution when the connection comes back.[1] Several vendor pages frame this less as a technical detail and more as a business promise: the register keeps working, so the shop keeps earning, even when the internet doesn't cooperate.[2] That framing is useful and mostly accurate. But almost none of the public material spends real time on the part that actually determines whether a small shop trusts the system afterward: what happens in the seconds and minutes right after two offline devices reconnect and both claim to have sold the same item, refunded the same customer, or closed the same shift.

Why does a single-till shop even hit this problem?

It's tempting to assume reconciliation conflicts are a "multi-store" or "enterprise" problem. They aren't. A single corner shop hits this the moment it has more than one way to record a sale while offline — a phone at the counter and a tablet near the storeroom, a cashier's device and an owner's device, or simply the same device restarted mid-sync after a power cut. Each of those is a separate "node" in the sense used by production offline-first designs, and each one queues its own local writes until it can talk to the server again.[1] The architectural pattern handles this with sync queues and idempotent operations so that replaying an action twice doesn't double-charge or double-deduct stock.[1] That's the right engineering answer. The retail question is different: when the same physical shift produces two locally "true" versions of events — say, a discount applied on one device and a full-price sale of the same item logged on another — whose version does the shop's daily total reflect, and does the shopkeeper find out before or after they've already reconciled cash in the drawer?

What does "revenue continuity" leave out?

Vendors increasingly describe offline capability in terms of revenue continuity: the register doesn't stop selling just because the network stops working.[3] That's a fair and important claim, especially for markets where connectivity outages are routine rather than rare. But revenue continuity during the outage is only half the story. The other half is reconciliation accuracy after the outage — whether the totals that eventually sync back to the system of record match what actually happened at the counter, item by item, currency by currency. For a shop running two currencies side by side, this matters more, not less. An offline sale recorded in local currency at one exchange rate, synced hours later after the rate has moved, creates a small but real gap between what the shelf said and what the books now show. None of the public offline-first write-ups we reviewed address multi-currency reconciliation specifically — which is a gap worth naming rather than papering over.

Is "local-first" the same as "reconciliation-safe"?

Not automatically. The broader argument in current offline-first material is that small merchants don't need "cloud POS with an offline mode" — they need commerce infrastructure where the internet is treated as a sync channel, not a dependency.[4] That's a sound design principle, and it's the right way to think about connectivity. But "local-first" describes where the data lives and how it's captured; it doesn't by itself guarantee that two local truths merge into one correct shift total. Conflict resolution logic — last-write-wins, manual review queues, event-sourced replay — is a design choice with real trade-offs, and it's the part that determines whether a shopkeeper can trust the number on the screen at closing time. A few practical patterns that separate "offline-capable" from "reconciliation-safe" in practice:

  • Every offline transaction gets a stable, device-generated unique ID before it's queued, so replay or duplicate sync can never double-count it.
  • Conflicts surface to a human — even a simple "these two records disagree, pick one" prompt — rather than being silently resolved by whichever device synced last.
  • Currency and exchange-rate values are locked to the moment of sale, not recalculated at sync time, so a late sync doesn't quietly change a shift's reported value.
  • Shift totals are reconstructed from the full event log, not just the last-known state, so a review can show exactly which device recorded what and when.

How should a small shop actually evaluate this before buying?

Because most of what's published on this topic comes from vendor blogs, engineering case studies, and product marketing pages rather than independent audits, it's worth treating the "offline-first" label itself as marketing shorthand rather than a guarantee. The underlying architecture — local storage, sync queues, idempotent APIs — is genuinely converging across products.[1] What varies a lot, and rarely gets documented publicly, is how each vendor handles the messy middle: multi-device conflicts, currency drift during sync delay, and whether a shopkeeper can actually see and correct a disputed transaction instead of just trusting the total. At Pultrack, this is the part we spend the most engineering time on precisely because it's invisible when it works and expensive when it doesn't: every offline sale carries its own timestamp, device origin, and locked exchange rate, and conflicting records surface for review rather than silently overwriting each other. We think that's the more honest way to talk about offline resilience — not just "it keeps selling," but "it keeps counting correctly afterward." If you're comparing offline-first POS options, the questions worth asking a vendor aren't about uptime claims. They're about what happens to your numbers the moment two devices that were both offline come back online at the same time.

FAQ

What does 'offline-first' actually mean for a POS system?

It means the app is built to record and process sales locally on the device by default, using a local database and a sync queue, rather than requiring a live connection to a central server for every transaction. The internet is used to sync data when available, not to authorize each sale.

Can a small shop with just one register still have sync conflicts?

Yes. Conflicts happen whenever more than one device or session can record events independently — a phone and a tablet, a cashier device and an owner device, or even the same device restarting mid-sync after a power cut. Any shop using more than one way to log sales while offline can hit this.

Does offline-first solve multi-currency accuracy problems?

Not by itself. Offline-first architecture solves whether a sale can be recorded without internet; it doesn't automatically solve what exchange rate that sale should be valued at once it syncs, especially if the rate moved during the outage. That needs a deliberate design choice, such as locking the rate at the moment of sale.

How can a shop owner tell if a POS vendor handles reconciliation well, not just offline mode?

Ask specifically what happens when two offline devices sync conflicting records for the same shift — whether the system flags the conflict for review or silently picks one version. Also ask whether historical exchange rates are preserved per transaction or recalculated later.

Is the current offline-first POS trend based on independent research?

Mostly no. Much of the public material on this topic is vendor blogs, product pages, and engineering case studies rather than independent studies, so claims about reliability or 'revenue continuity' should be read as vendor framing worth verifying against your own shop's conditions.

Sources

Try Pultrack✈ Telegram