Розбір рішень · Senior · Запитання 5 з 14
Замовлення охоплює сервіси оплати, складу й доставки, кожен із власною базою. Будь-який крок може впасти, а коротка неузгодженість прийнятна. Як це координувати?
- 1Сага з компенсувальними діями на кожен крок
- 2Двофазний коміт між усіма трьома базами
- 3Одна спільна база для всіх трьох сервісів
Показати відповідь
Правильна відповідь: Сага з компенсувальними діями на кожен крок
Пояснення
Сага виконує локальні транзакції й скасовує завершені кроки при збої, що пасує сервісам із власними даними й допускає коротку неузгодженість. Двофазний коміт підходить кільком тісно пов'язаним базам, що його підтримують, але блокує учасників і шкодить доступності. Спільна база підходить сервісам, які насправді не окремі, і повертає зв'язаність, заради усунення якої їх розділили.