Diciamo che voglio aggiungere una riga a un tavolo.
Invio la query dal client (il sito Web, non l'utente) al database che si trova su un altro server fisico. La query viene inviata tramite la rete.
La query è stata eseguita correttamente. Il database quindi invia un messaggio al client dicendo che la query è riuscita. In questo momento, la rete non riesce e il messaggio non raggiunge mai il client.
Ora, il client non ha modo di sapere se la query è riuscita o meno. Sa solo che ha perso la connessione con il database.
Quale sarebbe il modo migliore per gestire questo tipo di scenario?
Anche se la connessione viene ripristinata, il problema persiste ancora.
Ritentare la query è rischioso. La riga potrebbe essere aggiunta due volte. In effetti, qualsiasi tipo di aggiornamento potrebbe verificarsi due o più volte.
Trattare la query come "non riuscita" è fuorviante. Dire all'utente che la richiesta non è riuscita potrebbe essere un problema. L'utente potrebbe riprovare a fare qualcosa che è già stato fatto, come il completamento di un acquisto.