Sobes.tech
Middle — Senior

Czy może Pan/Pani wyjaśnić koncepcję choreografii w Saga i jak różni się ona od orkiestracji?

sobes.tech AI

Odpowiedź od AI

W kontekście wzorca Saga do zarządzania rozproszonymi transakcjami:

  • Choreografia — to podejście, w którym każdy serwis samodzielnie reaguje na zdarzenia innych serwisów i wykonuje własne działania. Nie ma centralnego kontrolera; interakcja odbywa się poprzez wymianę zdarzeń. To zmniejsza powiązania i zwiększa skalowalność, ale jest trudniejsze do śledzenia ogólnego przepływu.

  • Orkiestracja — tutaj istnieje centralny orkiestrator (koordynator), który zarządza sekwencją wywołań serwisów, kontrolując wykonanie i kompensację transakcji. Ułatwia to kontrolę i debugowanie, ale tworzy punkt awarii i zwiększa powiązania.

Przykład choreografii: serwis A publikuje zdarzenie, serwis B słucha i reaguje, następnie publikuje własne zdarzenie, na które reaguje serwis C itd.

Przykład orkiestracji: orkiestrator wywołuje serwis A, czeka na wynik, następnie wywołuje serwis B itd., zarządzając całą logiką.