Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ Transactional Outbox-ის კონცეფცია და რატომ გამოიყენება?

sobes.tech AI

პასუხი AI-სგან

Transactional Outbox — ეს არის ნიმუში, რომელიც გამოიყენება განაწილებულ სისტემებში შეტყობინებების საიმედო მიწოდების უზრუნველსაყოფად, განსაკუთრებით მაშინ, როდესაც საჭიროა მონაცემთა ბაზასა და შეტყობინებების გაცვლის სისტემას შორის თანმიმდევრულობის უზრუნველყოფა.

მოსაზრება ის არის, რომ როდესაც ხორციელდება ბიზნესი ოპერაცია, რომელიც ცვლის მონაცემებს, ამ ცვლილებებთან ერთად ერთ ტრანზაქციაში იწერება სპეციალური ჩანაწერი (outbox) ინფორმაციის შესახებ იმ მოვლენის შესახებ, რომელიც უნდა გამოქვეყნდეს.

სწორი ტრანზაქციის დამტკიცების შემდეგ, ცალკე პროცესი ან სერვისი კითხულობს ამ ჩანაწერებს outbox-დან და აგზავნის შეტყობინებებს რიგში ან შეტყობინებების ბრუოკერს.

ეს ხელს უწყობს შეტყობინებების დაკარგვის ან მონაცემთა სინდრონიზაციის პრობლემების თავიდან აცილებას, რადგან outbox-ში ჩანაწერი და მონაცემთა ცვლილება ხდება ატომურად.

მაგალითი:

  1. ტრანზაქციაში ჩვენ განაახლეთ შეკვეთების სია და დავამატეთ ჩანაწერი outbox-ში.
  2. ტრანზაქციის წარმატებით დასრულების შემდეგ, ცალკე მუშაკი კითხულობს outbox-ის ახალი ჩანაწერებს და აქვეყნებს მოვლენებს Kafka, RabbitMQ და სხვა სისტემებში.
  3. წარმატებული გაგზავნის შემდეგ, outbox-ის ჩანაწერი წაიშლება ან მონიშნულია როგორც დამუშავებული.

ამ გზით, მიიღწევა საიმედო ინტეგრაცია მონაცემთა ბაზასა და შეტყობინებების სისტემას შორის, მონაცემების დაკარგვის გარეშე.