Подобрете устойчивостта и надеждността на системите за електронна търговия в лицето на потенциални повреди чрез прилагане на шаблона за проектиране на Saga.

В система за електронна търговия процесът на изпълнение на поръчка може да срещне различни потенциални причини за неуспех. Например, клиент може да се опита да направи поръчка за продукт, който в момента не е наличен в склада. Освен това неуспешната обработка на плащанията може да възникне от множество фактори, като отхвърляне на плащане от шлюза за плащане, грешки в комуникацията, изтекли платежни токени или сесии, проблеми с банковата или картовата мрежа, дублиращи се опити за транзакции, остаряла интеграция на плащане или изоставяне на потребителя. Дори след успешна стъпка на плащане, изпращането на продукта (процесът на изпращане) може да се сблъска със собствен набор от грешки.

Като се има предвид възможността да се натъкнете на множество бизнес провали, които могат да бъдат доста тревожни, за разработчиците става изключително важно да се справят с този проблем ефективно. Фокусът е върху създаването на система, способна да се възстановява от такива повреди, като същевременно гарантира целостта на данните през целия процес. Тук влиза в действие концепцията на Saga.

Какво е Saga?

Saga е шаблон за проектиране, предназначен да се справи с възстановяването на бизнес неизправности в система за електронна търговия. Той адресира както възстановяването назад, постигнато чрез компенсиращи транзакции за поддържане на последователност на данните, така и възстановяването напред, което включва повторен опит или поставяне на неуспешна стъпка на опашка за по-късен опит. Всяка стъпка от дълготрайна транзакция, наричана също LLT (транзакция, която отнема часове, дни и дори месеци), се обработва от отделна микроуслуга, като се гарантира, че множество услуги работят заедно, за да завършат цялостен процес, като същевременно запазват целостта на данните в присъствието на потенциални неуспехи.

Болката от управлението на разпределени данни

Управлението на разпределени данни в архитектура на микросервизи може да бъде предизвикателство. Традиционните подходи като двуфазния ангажимент могат да причинят заключване и безизходица...