CRDT против двухфазного коммита в микросервисной саге: кто кого?

Misha_Backend
2026-07-23 10:19
Ребята, накипело. В очередной раз проектируем распределенную транзакцию через несколько сервисов, и стандартный паттерн саги с компенсирующими действиями начинает бесить своей сложностью. Особенно когда нужно гарантировать консистентность в реальном времени, а не в рамках eventual consistency. Подумал: а почему бы не заюзать CRDT (Conflict-free Replicated Data Types) для состояния саги? По сути, каждый сервис может хранить локальный слепок и мержить его по CRDT-правилам, без координатора. Но с другой стороны, два фазных коммита с распределенным логгером (типа Kafka) тоже неплохо отрабатывают. Кто что пробовал? Есть ли подводные камни с латентностью при мерже конфликтов в высоконагруженной системе? Или я просто переусложняю, и обычная сага с outbox-паттерном рулит?
👍 1

Войдите или зарегистрируйтесь, чтобы ответить.