Transaktionen

Eine Transaktion ist eine Operation oder eine Folge von Operationen, welche erfolgreich oder nicht erfolgreich sind.
Beim erfolgreichem Ausführen werden die Operationen auf den Datastore ausgeführt, bei Misserfolg wird keine der Operationen ausgeführt. Jede Operation ist dabei atomar.

Mit db.run_in_transaction() ist es möglich die Funktion mit übergebenen Parametern als Transaktion ablaufen zu lassen.
Wird innerhalb der Funktion eine Ausnahme ausgelöst, werden alle Datastore Operationen zurück gespielt.

Soll eine Transaktion mehrfach durchgeführt werden bietet sich die Funktion db.run_in_transaction_custom_retries() an, dieser kann eine Anzahl an maximalen Durchläufen übergeben werden, um die übergebene Funktion mehrfach auszuführen.

Die Funktion db.is_in_transaction() gibt einen Boolean zurück ob der aktuelle Skope in einer Transaktion ausgeführt wird.