Когда ваш сервис взаимодействует с базой данных и внешними API, могут возникнуть проблемы, такие как: списание средств без соответствующего заказа в базе данных, блокировка товара на складе из-за призрачного заказа или доставка курьером посылки, которая не была заказана. Эти ситуации являются следствием архитектурной проблемы двойной записи. К счастью, существуют проверенные паттерны для решения этой проблемы, такие как Transactional Outbox, Result Table и Saga Compensation. В данной статье рассматриваются не только теоретические аспекты, но и представлен практический проект на Scala, который можно клонировать и запустить, чтобы увидеть эти концепции в действии.
Что делать, если HTTP-запрос прошёл, а транзакция в БД откатилась
Решения для обработки неудачных транзакций в базе данных после успешных HTTP-запросов.
