Mikä on Saga-kuvio
Hajautetut transaktiot tapahtumasarjojen kautta
Saga-kuvio on malli hajautettujen transaktioiden hallintaan paikallisten transaktioiden sarjan ja epäonnistumisten kompensoivien toimintojen avulla.
Ongelma
- Mikropalveluilla on omat tietokantansa
- Perinteiset ACID-transaktiot ovat mahdottomia
- Palveluiden välinen johdonmukaisuus tarvitaan
Saga-tyypit
- Koreografia — palvelut vaihtavat tapahtumia
- Orkestrointi — keskuskoordinaattori hallitsee
Koreografia
- Palvelut tilaavat toistensa tapahtumia
- Jokainen palvelu julkaisee tuloksensa
- Ei yksittäistä vikakohtaa
- Vaikeampi seurata tilaa
Orkestrointi
- Saga-koordinaattori hallitsee virtaa
- Kutsuu palveluja peräkkäin
- Helpompi seurata ja korjata virheitä
- Yksittäisen vikakohdan riski
Kompensoivat Transaktiot
- Peru jo valmistuneet vaiheet
- On oltava idempotentteja
- Semanttinen peruutus (ei rollback)
- Esimerkki: hyvitys peruutuksen sijaan