Sobes.tech
Junior — Middle

Оё шумо метавонед консепти Transaction Outbox ва истифодаи онро шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Transaction Outbox — бу, ҳодисалар ёки хабарларни маълумотлар базасидан бошқа тизимларга ишончли ўтказиб бериш учун ишлатиладиган намуна бўлиб, айниқса микросервислар архитектурасида қўлланилади.

Гояси шундаки, маълумотлар базасида маълумотлар ўзгарганда ва ҳодиса юбориш зарур бўлганда (масалан, хабарлар навбатига), бу амалиётлар бир транзакция доирасида амалга оширилади. Ўзгартиришлардан кейин, ҳодиса махсус "outbox" жадвалига ёзилади.

Транзакция муваффақиятли тасдиқланганидан кейин, алоҳида бир жараён ёки хизмат outbox жадвалидан ёзувларни ўқийди ва уларни тегишли тизимга (масалан, Kafka, RabbitMQ) юборишади. Бу ҳодисанинг йўқотилиши ёки икки марта юборилиши олдини олади.

Қўлланиш мисоли:

  1. Хизматда буюртма янгилаш ва шу билан бирга "OrderUpdated" ҳодисаси outbox жадвалига ёзилади.
  2. Транзакция тасдиқланади — маълумотлар ва ҳодиса атомар сақланади.
  3. Алоҳида ишловчи outboxдан ўқийди ва ҳодисани навбатга чиқаради.

Шу тариқа, маълумотлар базаси ва хабар алмашиш тизими ўртасида мувофиқлик таъминланади, бу тарқатилган транзакцияларсиз амалга оширилади.