advanced
Eventual consistency
Проектируйте user flows, read models и reconciliation так, чтобы temporary disagreement был expected, observable и recoverable.
В распределённых системах replicas и сервисы временно расходятся. Eventual consistency означает: без новых updates все участники сходятся — но users могут видеть stale reads, duplicate notifications или out-of-order side effects без специального дизайна.
Компромисс: availability и partition tolerance против немедленной глобальной истины. UX должен терпеть lag: progress indicators, refresh, optimistic UI с rollback.
На интервью: набросайте read models на events; объясните обнаружение и repair divergence.
Типовые ошибки: пользователи «не заметят» lag; нет reconciliation job; inconsistent aggregates в одном API без метки staleness.
Чеклист:
- Задайте допустимую staleness на read path.
- Стройте reconciliation и мониторинг drift.
- Используйте version vectors или timestamps где нужно.
- Сообщайте limits consistency в APIs и UI.