When two systems must agree.
WHAT THE REALITY IS
Across systems, consistency is eventual at best.
WHY
There is no shared transaction.
WHAT EVENTUAL CONSISTENCY MEANS
Both sides agree, after a delay.
WHAT TO DECIDE
How long a delay is acceptable.
WHAT TO COMMUNICATE
That delay, to users, where it is visible.
WHAT TO AVOID
Interfaces implying an update is immediate everywhere.
WHAT TO BUILD FOR
Reads that briefly show the previous state.
WHAT USERS FIND CONFUSING
Doing something, then not seeing it.
WHAT TO DO ABOUT IT
Show the expected state locally, marked as pending.
WHAT TO NEVER DO
Write to both systems and hope.
WHAT TO DO INSTEAD
Write to the owner, and propagate.
WHAT PROPAGATION NEEDS
Retry Ordering, or tolerance of disorder Reconciliation
WHAT TO DO ABOUT CONFLICTS
Have a rule, decided in advance.
WHAT RULES EXIST
The owner always wins The most recent change wins Conflicts are surfaced for a human
WHY THE LAST ONE IS SOMETIMES CORRECT
Some conflicts genuinely require judgement.
WHAT TO RECORD
Every conflict, whatever the rule.
WHY
Frequent conflicts indicate a design problem.