Sobes.tech
Junior — Middle

Ar galite paaiškinti Transaction Outbox koncepciją ir jos taikymą?

sobes.tech AI

Atsakymas iš AI

Transaction Outbox — tai modelis, kuris naudojamas patikimai perduoti įvykius arba žinutes iš duomenų bazės į kitus sistemas, ypač mikroservisų architektūroje.

Idėja yra ta, kad keičiant duomenis bazėje ir reikalinga išsiųsti įvykį (pavyzdžiui, į žinučių eilę), šios operacijos vykdomos vieno sandorio ribose. Vietoj tiesioginio pranešimo siuntimo, įvykis įrašomas į specialią lentelę, vadinamą "outbox".

Sėkmingai patvirtinus sandorį, atskiras procesas arba paslauga skaito įrašus iš "outbox" lentelės ir siunčia juos į atitinkamą sistemą (pavyzdžiui, Kafka, RabbitMQ). Tai užtikrina, kad įvykis nepraras ir nebus išsiųstas du kartus.

Pavyzdys:

  1. Paslugoje atnaujinama užsakymas ir tuo pačiu metu įrašomas įvykis "OrderUpdated" į "outbox".
  2. Sandoris patvirtinamas — duomenys ir įvykis saugomi atominiu būdu.
  3. Atskiras darbuotojas skaito iš "outbox" ir publikuoja įvykį į eilę.

Taip pasiekiama nuoseklumas tarp duomenų bazės ir žinučių keitimo sistemos be paskirstytų sandorių.