Проверяет знание подходов к поддержанию целостности данных в распределённой системе.
Для согласованности используют транзакции на уровне бизнес-процессов (saga), где каждый шаг либо компенсируется при ошибке, двухфазное подтверждение (2PC) или eventual consistency через публикацию событий (Event Sourcing, CDC). Saga-паттерн более гибок и масштабируем, но требует реализации компенсационных операций.
Saga-паттерн:
- Последовательность локальных транзакций с компенсациями.
- Choreography: каждый сервис слушает события и сам выполняет шаг.
- Orchestration: централизованный координатор управляет шагами и откатами.
Two-Phase Commit (2PC):
- Централизованный менеджер координаторов, сильная согласованность, но низкая отказоустойчивость.
Eventual Consistency:
- Публикация событий (Kafka) при изменении состояния.
- Сервисы обновляют собственные копии данных асинхронно.
Change Data Capture (CDC):
- Реакция на изменения в БД и трансляция их в события.
Выбор подхода:
- Критичные операции → 2PC или Orchestration Saga.
- Высокая нагрузка и частичные разрешения → Choreography Saga, Eventual Consistency.