Sobes.tech
Junior — Middle

Kas saaksite selgitada Transaction Outbox kontseptsiooni ja selle rakendust?

sobes.tech AI

Vastus AI-lt

Transaction Outbox — on muster, mida kasutatakse usaldusväärseks sündmuste või sõnumite edastamiseks andmebaasist teistesse süsteemidesse, eriti mikroteenuste arhitektuuris.

Idee seisneb selles, et andmete muutmisel andmebaasis ja vajadusel sündmuse saatmisel (näiteks sõnumijadasse), tehakse need toimingud ühe transaktsiooni raames. Selle asemel, et otse sõnumit saata, registreeritakse sündmus spetsiaalsesse tabelisse nimega "outbox".

Pärast transaktsiooni edukat kinnitamist loeb eraldi protsess või teenus kirjed outbox tabelist ja saadab need vastavasse süsteemi (näiteks Kafka, RabbitMQ). See tagab, et sündmus ei kao ja seda ei saadeta kaks korda.

Näide rakendusest:

  1. Teenuses uuendatakse tellimus ja samal ajal registreeritakse "OrderUpdated" sündmus outbox tabelisse.
  2. Transaktsioon kinnitatakse — andmed ja sündmus salvestatakse atomiliselt.
  3. Eraldi töötleja loeb outboxist ja avaldab sündmuse järjekorras.

Sellisel viisil saavutatakse kooskõla andmebaasi ja sõnumivahetussüsteemi vahel ilma jaotatud transaktsioonideta.