Kafka / микросервисы middle
В чём разница: Распределённые транзакции: 2PC vs Saga?
Ответ
2PC — координатор + участники, блокировки, плохо масштабируется. Saga — цепочка локальных транзакций с компенсирующими действиями. Хореография vs оркестрация.
Разбор: 2PC координирует участников в две фазы (prepare, затем commit), удерживая блокировки и плохо масштабируясь; Saga разбивает операцию на последовательность локальных транзакций, а откат выполняется явными компенсирующими действиями (через хореографию или оркестрацию). Ловушки: перепутать местами механизмы 2PC и Saga, приписать Saga строгую ACID-атомарность или думать, что компенсации в Saga — это обычный rollback.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.