Analiza decyzji · Senior · Pytanie 4 z 14
Po zapisaniu zamówienia usługa musi opublikować zdarzenie w brokerze. Zdarzeń nie wolno stracić, a broker nie uczestniczy w transakcji bazy. Co zrobić?
- 1Najpierw commit, potem publikacja z ponowieniami w handlerze
- 2Najpierw publikacja, potem commit po potwierdzeniu brokera
- 3Transactional outbox z publikacją przez relay
Pokaż odpowiedź
Poprawna odpowiedź: Transactional outbox z publikacją przez relay
Wyjaśnienie
Zapis zdarzenia w tej samej transakcji co zamówienie oznacza, że istnieją oba albo żadne, a relay dostarczy je później. Publikacja po commicie pasuje do zdarzeń, które można stracić, ale awaria między krokami je gubi. Publikacja najpierw nie pasuje do niczego, co ma być spójne, bo nieudany commit zostawia odbiorców reagujących na nieistniejące zamówienie.