4.1Make the console idempotent, or lose the floor
The console's mass actions are not naturally repeatable: an anonymous entry creates people, a mass exit closes shifts by count. Routes retry on a dropped connection — including the retry after a transaction that committed but whose acknowledgement was lost on venue wifi. Re-running that duplicates people and their hours. The fix is a batch key (ConsoleActionBatch) written as the first row of the transaction, so it commits atomically with the work; a re-send collides on the primary key and returns the stored result. Mass exit closes with an atomic claim — updateMany where the shift is still open — so a second manager gets nothing, not a phantom exit. This is fig. 4.
commit: “Endurecimento pré-lançamento: idempotência da consola e confiança na faturação”