TL;DR

A gate check-in app can't depend on live Wi-Fi: scans must work offline and sync later.

Four endpoints do it: manifest download, idempotent batch push, delta pull, online search.

Client-generated UUIDs + a unique index make retries safe. Duplicates are a success status, not an error.

The problem