Offline-first sync, and what it takes to be honest about it
The terminal keeps its own database (39 entities, 27 hand-written migrations), and every write goes through a durable outbound queue rather than straight to the network. Inbound batches apply with per-item exception isolation so one malformed record can't stall the waterfall behind it, and anything that fails lands in a dead-letter table instead of vanishing. The sync cursor only advances over records that actually applied, which is the difference between a queue that drains and a queue that lies.

