Analiza decyzji · Senior · Pytanie 5 z 14
Zamówienie obejmuje usługi płatności, magazynu i wysyłki, każdą z własną bazą. Każdy krok może się nie udać, a krótka niespójność jest dopuszczalna. Jak to koordynować?
- 1Saga z akcjami kompensującymi dla każdego kroku
- 2Commit dwufazowy między wszystkimi trzema bazami
- 3Jedna wspólna baza dla wszystkich trzech usług
Pokaż odpowiedź
Poprawna odpowiedź: Saga z akcjami kompensującymi dla każdego kroku
Wyjaśnienie
Saga wykonuje lokalne transakcje i cofa ukończone kroki przy błędzie, co pasuje do usług z własnymi danymi i dopuszcza krótką niespójność. Commit dwufazowy pasuje do kilku ściśle powiązanych baz, które go obsługują, ale blokuje uczestników i szkodzi dostępności. Wspólna baza pasuje do usług, które tak naprawdę nie są osobne, i przywraca powiązania, dla których uniknięcia je rozdzielono.