A tranzakciót szinte minden programozó ismeri, a Saga-t talán kevesebben. Röviden megnézzük, hogy mire is valók, hogyan próbálják azt elérni, mik az előnyeik, hátrányaik.
Mind a kettő arra való, hogy egy tevékenység sorozatot hajtsanak végre és probléma esetén kompenzálják a módosítások hatásait.
Tranzakció:
Tevékenység sorozat végrehajtása atomi műveletként, miközben az adatok konzisztensek a tranzakció előtt, alatt és után, probléma esetén a kiindulási állapotban marad a rendszer.
- Atomicitás: több műveletet atomi (oszthatatlan) műveletként hajt végre, azaz vagy az összes művelet sikeresen végrehajtódik, vagy egyik sem.
- Konzisztencia: biztosítja, hogy az adatok a tranzakció előtti érvényes állapotból ismét egy érvényes állapotba kerüljenek. Fontos, hogy a tranzakció ideje alatt is konzisztensek maradnak az adatok.
- Izoláció: A tranzakciók izolációja azt biztosítja, hogy az egy időben zajló tranzakciók olyan állapothoz vezetnek, mint amilyet sorban végrehajtott tranzakciók érnének el. Egy végrehajtás alatt álló tranzakció hatásai nem láthatóak a többi tranzakcióból.