All resourcesArticle · Operations

Why your POS should refuse to print twice

Double-tapping Fire on a laggy tablet is the most ordinary thing a waiter does. Here is what has to happen underneath so it costs nothing.

June 16, 20265 min read

A disabled button is a user-interface affordance, not a concurrency control. On a shared tablet at eight on a Friday, a re-render lagging half a second behind a second tap is normal, and the result is two orders, two kitchen tickets and a doubled bill.

The fix is an idempotency key derived from the intent — the round, the scope and the exact set of pending lines — rather than minted fresh on each click. Two taps of the same round send the same key and the server collapses them; a genuinely new round mints a new one.

The same discipline runs through the cart. Every mutation carries the cart version it believed it was editing, and a stale version is refused with a conflict rather than silently overwriting a colleague's change on another tablet.

None of this is visible when it works, which is rather the point.

See it on your own property

A 30-minute walkthrough with your rooms, rates and outlets — no slides.