Կարող եք բացատրել Transactional Outbox կոնցեպցիան և ինչու է այն օգտագործվում:
sobes.tech AI
Պատասխան AI-ից
Transactional Outbox — սա մի ձևաչափ է, որը օգտագործվում է ցրված համակարգերում հաղորդագրությունների հուսալի առաքումը ապահովելու համար, հատկապես երբ անհրաժեշտ է ապահովել տվյալների բազայի և հաղորդագրությունների փոխանակման համակարգի համաձայնությունը:
Իդեան այն է, որ բիզնես-գործողության ժամանակ, որը փոփոխում է տվյալները, այդ փոփոխությունների հետ միասին նույն տրանզակցիայում գրանցվում է հատուկ գրառում (outbox)՝ տեղեկություն այն մասին, թե ինչ իրադարձություն պետք է հրապարակվի:
Հաջորդ քայլում, հաջողված տրանզակցիայի հաստատումից հետո, առանձին գործընթաց կամ ծառայություն կարդում է այդ գրառումները outbox-ից և ուղարկում հաղորդագրությունները հերթին կամ հաղորդագրությունների բրոքերին:
Այս մեթոդը օգնում է խուսափել հաղորդագրությունների կորուստից կամ տվյալների անհամապատասխանությունից, քանի որ outbox-ում գրառումը և տվյալների փոփոխությունը տեղի են ունենում ագրեգատորային կերպով:
Օրինակ՝
- Տրանզակցիայում մենք թարմացնում ենք պատվերների աղյուսակը և ավելացնում ենք գրառում outbox աղյուսակում:
- Հաջորդում, երբ տրանզակցիան հաստատվում է, առանձին աշխատողը կարդում է նոր գրառումները outbox-ից և հրապարակում է իրադարձությունները Kafka, RabbitMQ և այլ համակարգերում:
- Հաջողակ ուղարկումից հետո, outbox գրառումը ջնջվում է կամ նշվում որպես մշակված:
Այսպիսով, ապահովվում է տվյալների բազայի և հաղորդագրությունների համակարգի հուսալի ինտեգրացիա՝ առանց տվյալների կորուստի։