Mis on Saga muster
Hajutatud tehingud sündmuste jadade kaudu
Saga muster on muster hajutatud tehingute haldamiseks kohalike tehingute jada ja tõrgete korral kompenseerivate toimingute kaudu.
Probleem
- Mikroteenustel on oma andmebaasid
- Klassikalised ACID tehingud on võimatud
- Teenuste vaheline järjepidevus on vajalik
Saga tüübid
- Koreograafia — teenused vahetavad sündmusi
- Orkestreerimine — keskne koordinaator haldab
Koreograafia
- Teenused tellivad üksteise sündmusi
- Iga teenus avaldab oma tulemuse
- Ühtegi üksikut tõrkepunkti pole
- Oleku jälgimine on raskem
Orkestreerimine
- Saga koordinaator haldab voogu
- Kutsub teenuseid järjestikku
- Lihtsam jälgida ja siluda
- Üksiku tõrkepunkti risk
Kompenseerivad Tehingud
- Tühista juba lõpetatud sammud
- Peavad olema idempotentsed
- Semantiline tühistamine (mitte rollback)
- Näide: tagasimakse tühistamise asemel