# **RSWW**
# IPC
API:
* nazwy kanałów i ich parametry
* typy komunikatów
*
* debezium
* eventuate trom
## Saga
### create order saga
1- orderservice 2- consumerservice 3 - kitchenservice 4 accountingservice
1. 1 tworzy `<<Order>>` w stanie APPROVAL_PENDING
2. 2 sparawdza czy klient może złożyć zamówienie
3. 3 waliduje informacje dot. zamówienia i tworzy bilet `<<Ticket>>` w stanie CREATE_PENDIND
4. 4 autoryzuje kartę kredytową klienta
5. 3 zmienia stan biletu `<<Ticket>>` na na AVAITING_ACCEPTATION
6. 1 zmienia stan `<<Order>>` na APPROVED
7.
w przypadku błędu wykonywane są tranzakcje kompensujące
tranzakcja zwrotna - nie wymaga kompensacji w przypadku błędu
tranzakcja przestawna - punkt w przetwarzaniu po którym nie występują błędy - zawsze przejdzie
1. OrderService
1. createOrder() - tworzenie
2. rejectOrder - kompens.
3. approveOrder
2. ConsummerService
1. verifyConsumerDetails
3. KitchenService
1. CreateTicket
2. approveTicket
3. rejectTicket
4. AccountingService
1. authorizeCreditCard
Choreografia vs Orchestracja