Sobes.tech
Junior — Middle

Կարող եք բացատրել Transactional Outbox կոնցեպցիան և ինչու է այն օգտագործվում:

sobes.tech AI

Պատասխան AI-ից

Transactional Outbox — սա մի ձևաչափ է, որը օգտագործվում է ցրված համակարգերում հաղորդագրությունների հուսալի առաքումը ապահովելու համար, հատկապես երբ անհրաժեշտ է ապահովել տվյալների բազայի և հաղորդագրությունների փոխանակման համակարգի համաձայնությունը:

Իդեան այն է, որ բիզնես-գործողության ժամանակ, որը փոփոխում է տվյալները, այդ փոփոխությունների հետ միասին նույն տրանզակցիայում գրանցվում է հատուկ գրառում (outbox)՝ տեղեկություն այն մասին, թե ինչ իրադարձություն պետք է հրապարակվի:

Հաջորդ քայլում, հաջողված տրանզակցիայի հաստատումից հետո, առանձին գործընթաց կամ ծառայություն կարդում է այդ գրառումները outbox-ից և ուղարկում հաղորդագրությունները հերթին կամ հաղորդագրությունների բրոքերին:

Այս մեթոդը օգնում է խուսափել հաղորդագրությունների կորուստից կամ տվյալների անհամապատասխանությունից, քանի որ outbox-ում գրառումը և տվյալների փոփոխությունը տեղի են ունենում ագրեգատորային կերպով:

Օրինակ՝

  1. Տրանզակցիայում մենք թարմացնում ենք պատվերների աղյուսակը և ավելացնում ենք գրառում outbox աղյուսակում:
  2. Հաջորդում, երբ տրանզակցիան հաստատվում է, առանձին աշխատողը կարդում է նոր գրառումները outbox-ից և հրապարակում է իրադարձությունները Kafka, RabbitMQ և այլ համակարգերում:
  3. Հաջողակ ուղարկումից հետո, outbox գրառումը ջնջվում է կամ նշվում որպես մշակված:

Այսպիսով, ապահովվում է տվյալների բազայի և հաղորդագրությունների համակարգի հուսալի ինտեգրացիա՝ առանց տվյալների կորուստի։