
В современных архитектурах, управляемых событиями, сервисы часто взаимодействуют асинхронно с помощью брокера сообщений. Типичный процесс выглядит так: сервис получает запрос, обновляет собственную базу данных, а затем публикует событие, чтобы уведомить другие сервисы об изменении. Или эти два действия выполняются параллельно.
Вот в чём проблема: что произойдёт, если фиксация в базе данных пройдёт успешно, но последующий вызов брокера сообщений завершится ошибкой? Тут на сцену выходит паттерн outbox