Když aplikace nebo databáze náhle selže mezi aplikací transakce na A a aplikací transakce na B, bude stále existovat transakce se stavem state:"pending"
v globální kolekci transakcí. Váš skript obnovy, který spustíte po havárii, by si toho měl všimnout, zkontrolovat dva účty a zjistit, že na jednom účtu je čekající transakce, ale na druhém ne. Nyní ví vše, co potřebuje vědět, aby transakci vrátil zpět nebo se ji pokusil dokončit.
Ano, napsat skript pro obnovení, který je tak chytrý, není snadné. Ale transakce v databázovém systému, který pro ně není navržen, jsou vždy těžké. Někdy můžete obejít vyžadování transakcí v MongoDB tak, že své dokumenty navrhnete tak, aby pole, která je třeba aktualizovat společně, byla vždy ve stejném dokumentu, ale ne vždy existuje rozumný způsob, jak to udělat. Když váš případ použití absolutně potřebuje transakce, chraňte svůj zdravý rozum a použijte relační databázi.