Недавно я несколько раз читал, что двухфазные коммиты — это плохо, но всегда в качестве примечания. Так что хорошего объяснения этому никогда не было.
Например, в CQRS Journey Chapter 5:
Во-вторых, мы пытаемся избежать двухэтапных коммитов, потому что они всегда вызывают проблемы в долгосрочной перспективе.
Или в разделе Реализация дизайна, ориентированного на предметную область на странице 563:
Второй ReadRecorts() используется инфраструктурой для репликации событий, их публикации без необходимости двухэтапной фиксации,...
Я думал, что двухфазные коммиты реализованы для обеспечения согласованности между несколькими серверами баз данных.
Какие проблемы могут возникнуть при использовании двухэтапных коммитов? Почему их лучше избегать?