кандидат рассказал про индексы,
SELECT FOR UPDATE, уровни изоляции, короч навалил базы по топ 100 вопросов на собесе 🚬Но в той же задаче не видит, что транзакция уже открыта — и идёт во внешний HTTP или Kafka ДО
COMMIT 👮♂️ Ну дядя, так не пойдёт 👮♂️
Пока внешний сервис думает, ты держишь соединение с БД. А после записи — ещё и локи, до закрытия транзакции
Один таймаут — и запросы к ручке начинают вставать в очередь. А если прилетит волна трафика?
Это БАЗА, тут нельзя так себя вести. быстренько делай пук-среньк и уходи ⬛️
Транзакция здорового человека:
BEGIN → прочитал → изменил/записал → COMMIT
Внешний вызов — всегда снаружи. Нужна надёжная доставка — используй
transactional outbox.Насыпьте реакций — разберу
transactional outbox по полочкам, это топ паттерн для System design 🍷