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.