Micro service i transakcje

0

Witam,
czy ktoś z was korzysta z tego nowego podejścia do architektury. Czyli dzieli swój duży monlityczny program na mniejsze, które komunikują się po REST.
Jak wtedy zadbać o spójność transakcje.????

Czy jak wołam inny microservis to robię to w kontekście nietransakcyjnym...kontrolerze?

A jak piszecie aplikacje web'owe to zawsze metoda kontrolera (nietransakcyjna) uderza w transakcyjne ejb/spring.???
Czy dzielicie swój biznes na osobne transakcje tzn kontroler (nietransakcyjny) uderza w serwis(tez nietransakcyjny) i w serwisie jest wywołanie innych serwisów które mają REQUIRES_NEW

0

Pierwsza cecha mikroserisów - serwisy są od siebie niezależne.
Druga cecha mikroserwisów - co dzieje się w mikroserwisie pozostaje w mikroserwisie.

Serwisy nie mogą od siebie zależeć "na sztywno" w żaden sposób. Zatem wiązanie wywołania innego serwisu z np. transakcją wewnątrz wywołującego nie jest najlepszym sposobem.Ponad to wywołyjącego nie powinno obchodzić co robi wywoływany serwis. Czy uderza do kolejnych serwisów czy sam bawi się w transakcje.

0

Dzięki,
a zostawiając micro....
a co w sytuacji wewnątrz aplikacji(monolit) kiedy mamy np Sklep i mamy funkcję realizuj zamówienie:

  1. Zmniejsz stan produktów (modul GM)
  2. Wystaw fakturę (modul FK)
  3. Nalicz punktu dla stałego klienta (moduł CRM)

Każdy z tych punktów jest realizowany przez oddzielny serwis i teraz jak wygląda interakcja w sensie transakcji:

  1. Serwis od Zamówieni jest transakcyjny i woła pozostałe 3 serwisy które doklejają się do jednej dużej transakcji
  2. Serwis od Zamówieni jest nietransakcyjny i woła pozostałe 3 serwisy, gdzie każde wywołanie to osobna transakcja

1 użytkowników online, w tym zalogowanych: 0, gości: 1