Wenn ein Client einen Befehl1) an den Server sendet, kann er dem Befehl optional ein Time-Out mit geben. Der Server merkt sich dann, wann der Befehl empfangen wurde2), und prüft diesen Zeitpunkt plus Time-Out gegen die Uhrzeit nochmal vor dem endgültigen Transaction.Commit(). Wenn das Time-Out abgelaufen ist, wird der Befehl nicht durchgeführt.
Aber auch ein Befehls Time-Out hilf nur, die sofortige Konsistenz zu verbessern, er fügt dem System keine Garantien hinzu. Die sinnvollste Lösung scheint tatsächlich die der Idempotenz zu sein.