---
# System prepended metadata

title: '**RSWW**'

---

# **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

