Продвинутый
Что такое Двухфазный коммит (2PC) в распределенных транзакциях?
2PC (Two-Phase Commit) — это алгоритм для синхронных распределенных транзакций (когда нужно обновить данные сразу в двух разных БД).
Есть Координатор и Участники (БД 1 и БД 2).
Фаза 1 (Prepare): Координатор спрашивает: "Вы готовы закоммитить?". Участники блокируют строки и отвечают "Да" или "Нет".
Фаза 2 (Commit/Rollback): Если ВСЕ ответили "Да", координатор шлет команду COMMIT. Если хоть один ответил "Нет" (или отвалился по таймауту) — координатор шлет всем ROLLBACK.
❌ Минусы: Очень медленно, блокирует таблицы на долгое время. В микросервисах вместо 2PC используют паттерн Saga.