Sobes.tech
Junior — Middle

Transaction Outbox anlayışını və onun tətbiqini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Transaction Outbox — bu, hadisələrin və ya mesajların verilənlər bazasından digər sistemlərə etibarlı şəkildə ötürülməsini təmin edən bir nümunədir və xüsusən mikroxidmət memarlığında istifadə olunur.

Fikrin əsası odur ki, verilənlər bazasında məlumatlar dəyişdirildikdə və hadisə göndərmək lazım olduqda (məsələn, mesaj növbəsinə), bu əməliyyatlar bir tranzaksiya çərçivəsində həyata keçirilir. Birbaşa mesaj göndərmək əvəzinə, hadisə xüsusi "outbox" cədvəlinə qeyd olunur.

Uğurlu tranzaksiya təsdiqləndikdən sonra, ayrı bir proses və ya xidmət outbox cədvəlindən qeydləri oxuyur və onları müvafiq sistemə (məsələn, Kafka, RabbitMQ) göndərir. Bu, hadisənin itirilməməsini və iki dəfə göndərilməməsini təmin edir.

Tətbiq nümunəsi:

  1. Xidmətdə sifariş yenilənir və eyni zamanda "OrderUpdated" hadisəsi outbox cədvəlinə qeyd olunur.
  2. Tranzaksiya təsdiqlənir — məlumatlar və hadisə atomar şəkildə saxlanılır.
  3. Ayrı bir worker outbox-dan oxuyur və hadisəni növbəyə çıxarır.

Beləliklə, verilənlər bazası ilə mesaj mübadiləsi sistemi arasında uyğunluq təmin edilir və bu, paylanmış tranzaksiyaları tələb etmir.