![[Перевод] Что делать, если HTTP‑запрос прошёл, а транзакция в БД откатилась?](https://habrastorage.org/getpro/habr/upload_files/47e/9bf/30a/47e9bf30a67a2af7631c16a6d5779e82.jpg)
[Перевод] Что делать, если HTTP‑запрос прошёл, а транзакция в БД откатилась?
Если ваш сервис одновременно пишет в БД и дёргает внешние API, прямо сейчас у вас есть как минимум один из этих сценариев:– деньги списаны, заказа в базе нет;– товар на складе заблокирован навсегда под «призрачный» заказ;– курьерская служба везёт посылку, которую никто не заказывал.Это не баги в коде – это архитектурная проблема двойной записи. И у неё есть классическое решение: паттерны Transactional Outbox, Result Table и Saga Compensation. Под катом – не только теория, но и живой рабочий проект на Scala, который можно склонировать и запустить. Читать далее