Sobes.tech
Junior — Middle

Ar galite paaiškinti Transactional Outbox koncepciją ir kodėl ji naudojama?

sobes.tech AI

Atsakymas iš AI

Transactional Outbox — tai modelis, naudojamas užtikrinti patikimą žinučių pristatymą paskirstytose sistemose, ypač kai būtina garantuoti duomenų bazės ir žinučių keitimo sistemos nuoseklumą.

Idėja ta, kad vykdant verslo operaciją, kuri keičia duomenis, kartu su šiais pakeitimais tame pačiame tranzakte įrašomas specialus įrašas (outbox) su informacija apie įvykį, kurį reikia paskelbti.

Po sėkmingo tranzakcijos įvykdymo, atskiras procesas arba paslauga skaito šiuos įrašus iš outbox ir siunčia žinutes į eilę arba žinučių brokerį.

Tai padeda išvengti žinučių praradimo arba duomenų nesuderinamumo problemų, nes įrašas outbox'e ir duomenų keitimas vyksta atominiu būdu.

Pavyzdys:

  1. Transakcijoje atnaujiname užsakymų lentelę ir pridedame įrašą į outbox lentelę.
  2. Po sėkmingo įvykdymo, atskiras darbuotojas skaito naujus įrašus iš outbox ir skelbia įvykius Kafka, RabbitMQ ir kt.
  3. Po sėkmingo siuntimo, outbox įrašas ištrinamas arba pažymimas kaip apdorotas.

Taip pasiekiama patikima integracija tarp duomenų bazės ir žinučių keitimo sistemos be duomenų praradimo.