Kas saaksite selgitada Transactional Outbox kontseptsiooni ja miks seda kasutatakse?
sobes.tech AI
Vastus AI-lt
Transactional Outbox on muster, mida kasutatakse usaldusväärse sõnumite kohaletoimetamise tagamiseks jaotatud süsteemides, eriti kui on vaja tagada andmebaasi ja sõnumivahetussüsteemi järjepidevus.
Idee seisneb selles, et ärilise operatsiooni ajal, mis muudab andmeid, salvestatakse samaaegselt selle muutusega spetsiaalne kirje (outbox), mis sisaldab teavet sündmuse kohta, mida tuleb avaldada.
Pärast edukat tehingu kinnitamist loeb eraldi protsess või teenus need kirjed outboxist ja saadab sõnumid järjekorda või sõnumibrokerile.
See aitab vältida sõnumite kadumise või andmete desünkroniseerimise probleeme, kuna outboxi kirje ja andmete muutmine toimuvad atomiliselt.
Näide:
- Tehingus uuendame tellimustabelit ja lisame kirje outboxi.
- Pärast tehingu kinnitamist loeb eraldi töötaja need uued kirjed outboxist ja avaldab sündmused Kafka, RabbitMQ jms.
- Pärast edukat saatmist eemaldatakse outboxi kirje või märgitakse see töödelduks.
Sellisel viisil saavutatakse usaldusväärne integratsioon andmebaasi ja sõnumivahetussüsteemi vahel, ilma andmete kadumiseta.