advanced

Eventual consistency

Design user flows, read models, and reconciliation so temporary disagreement is expected, observable, and recoverable.

In distributed systems, replicas and services disagree temporarily. Eventual consistency means given no new updates, all participants converge — but users may see stale reads, duplicate notifications, or out-of-order side effects unless you design for it.

Trade-off: availability and partition tolerance versus immediate global truth. UX must tolerate lag: progress indicators, refresh, optimistic UI with rollback.

On interviews: sketch read models fed by events; explain how you detect and repair divergence.

Common pitfalls: assuming users never notice lag; no reconciliation job; exposing inconsistent aggregates in one API response without labeling staleness.

Checklist:

  • Define acceptable staleness per read path.
  • Build reconciliation and monitoring for drift.
  • Use version vectors or timestamps where needed.
  • Communicate consistency limits in APIs and UI.