Розбір рішень · Senior · Запитання 4 з 14

Після збереження замовлення сервіс має опублікувати подію в брокер. Події не можна втрачати, а брокер не бере участі в транзакції бази. Що зробити?

Показати відповідь

Правильна відповідь: Transactional outbox із публікацією через relay

Пояснення

Запис події в одній транзакції із замовленням означає, що існують обидва або жодне, а relay доставить подію згодом. Публікація після коміту підходить для подій, які можна втратити, але збій між двома кроками її губить. Публікація першою не підходить ні до чого, що має бути узгодженим, бо невдалий коміт лишає споживачів із реакцією на неіснуюче замовлення.

Де почитати

Помилка в запитанні

Розбір рішень · Senior · запитання 4

Перевірте себе

Пройдіть тест Розбір рішень · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест