Sobes.tech
Middle+

Kas ir saga transakciju pārvaldības kontekstā?

sobes.tech AI

Atbilde no AI

Saga ir sadalītu transakciju pārvaldības modelis mikroservisu arhitektūrā. Tā ir secība ar vietējiem transakcijām, kur katra transakcija atjaunina datus vienā servisā.

Ja kāda vietējā transakcija secībā neizdodas, saga veic kompensējošas transakcijas, lai atceltu iepriekš veikto veiksmīgo vietējo transakciju izmaiņas, tādējādi atjaunojot sistēmas integritāti.

Divas galvenās saga īstenošanas pieejas ir:

  1. Horeogrāfija (Choreography): Servisi tieši apmainās ar notikumiem, nepaļaujoties uz centrālo koordinētāju. Katrs serviss klausās citos servisos ģenerētajos notikumos un veic savas vietējās transakcijas un/vai publicē jaunus notikumus.

    • Priekšrocības: Vienkāršāk īstenot mazā skaitā servisu, nav viena kritiskā kļūdas punkta.
    • Trūkumi: Grūti uzraudzīt izpildes plūsmu un iespējamās cikliskās atkarības, grūtāk labot.
  2. Orķestrācija (Orchestration): Centrālais orķestrētājs (saga-orķestrētājs) pārvalda vietējo transakciju izpildes secību. Orķestrētājs sūta komandās servisam, lai tie veic savas vietējās transakcijas, un reaģē uz notikumiem, ko sūta servisi (panākums/neveiksme), pieņemot lēmumus par nākamo soli vai kompensējošo transakciju uzsākšanu.

    • Priekšrocības: Skaidrs atbildības sadalījums, vieglāk uzraudzīt un labot izpildes plūsmu, vieglāk ieviest sarežģītas loģikas.
    • Trūkumi: Orķestrētājs var būt vienīgais kļūdas punkts, nepieciešama papildu loģika saga stāvokļa pārvaldībai.

Izvēle ir atkarīga no biznesa procesa sarežģītības, iesaistīto servisu skaita un pārvaldības un uzraudzības prasībām. Saga nesniedz atomaritāti klasiskajā izpratnē (ACID), bet garantē galīgo konsekvenci.