When eventual consistency is worth the effort
There is no clever trick in this one, just a handful of decisions worth making deliberately. Eventual consistency is not free, and pretending otherwise leads to bad decisions.
Most systems fail at the seams rather than inside any one component. It is worth deciding this deliberately rather than inheriting whatever the last person set up.
When it is worth it
Users notice inconsistency long before your monitoring does. This is the sort of thing that compounds, quietly, in both directions. The teams that stay on top of it are the ones who put it on a calendar rather than a wish list.
When it is not
If nothing downstream depends on it and nobody is complaining, it can wait. The cost of getting this wrong is rarely visible on the day it happens.
How to decide
Explain the delay in the interface rather than hiding it. The reasoning matters more than the rule, because the rule has exceptions. Check it against what you would want a competitor's site to get wrong.
The short version
The right architecture for a team of three is the wrong one for a team of thirty, and vice versa. Three things worth confirming about eventual consistency before you move on:
- Someone can say what the current setup is without going to look
- Users notice inconsistency long before your monitoring does — and you know whether that is true here
- There is a way to tell whether the last change to this helped
If you are not sure where your systems currently stand on this, it takes us about an hour to find out.