System Design · Senior · Pytanie 36 z 75
Jak atomowo zaktualizować bazę danych i wysłać zdarzenie do kolejki?
- ✓Poprawna odpowiedź: Outbox: zdarzenie zapisuje się do bazy w tej samej transakcji
- 2Najpierw wysłać zdarzenie, potem zapisać do bazy - kolejność nie ma znaczenia
- 3Wysyłać zdarzenie z przeglądarki użytkownika po udanej odpowiedzi API
Wyjaśnienie
Bez transakcji obejmującej bazę i broker możliwe są rozbieżności: zapis przeszedł, a zdarzenie się zgubiło (lub odwrotnie). Tabela outbox utrwala zdarzenie atomowo ze zmianą, a relay publikuje je z ponowieniami (at-least-once).