Az elosztott tranzakció esetén sem varázslattal áramlik az információ a node-ok között.
A végrehajtandó tranzakció utasítások is hálózaton mennek, a sikerességükről az információk visszafelé is, majd a rollback, commit információk szintén.
Pontosan ugyanezek a problémák, amiket felsoroltál ott is megvannak.
A fő különbség az, hogy a tranzakció esetén az adatbázisnak az érintett része fagyasztva van addig, amíg commit vagy rollback nem történik, hogy vissza lehessen állítani a kiinduló állapotot.
Míg pl. Saga esetén nincs fagyasztva, mert ott nem az eredetit állítják vissza, hanem az aktuálisat kompenzálják.
Csak két példa a különbségre:
1. Egy adat egy helyen 10, tranzakcióval átállítjuk 12-re, majd rollback esetén vissza 10-re. A tranzakció végéig a 10 nem változhat. Saga esetén nem 12-re írjuk, hanem hozzáadunk 2-őt, utána az érték változhat, ha közben 8 lett, akkor "rollback" esetén a kompenzáció kivon 2-őt és 6 lesz az érték.
2. Tranzakcióban emailt kellene küldeni. Itt azért nem egyszerű megoldani, hogy ténylegesen ne legyen elküldve, de az esetleges hibák (pl. címzett ismeretlen) már a tranzakció alatt kiderüljön, ha emiatt kellene visszavonni az egészet. Saga esetén kiküldik az emailt, majd "rollback" esetén pl. küldenek egy helyesbítő emailt.