Dabish Digital
Architecture

Eventual consistency for small teams

The gap between knowing this and actually doing it is where most teams lose ground. Most advice about eventual consistency assumes a team that does not exist at your size. Here is the version that does not.

The right architecture for a team of three is the wrong one for a team of thirty, and vice versa. It is worth deciding this deliberately rather than inheriting whatever the last person set up.

What to keep

Users notice inconsistency long before your monitoring does. Getting it slightly wrong is survivable. Ignoring it entirely is not. It is worth deciding this deliberately rather than inheriting whatever the last person set up.

What to drop

Process that exists to coordinate ten people is overhead when there are two of you. Getting it slightly wrong is survivable. Ignoring it entirely is not.

Where to start

Explain the delay in the interface rather than hiding it. There is a version of this that is over-engineered, and it is worth avoiding. The version that survives contact with a real deadline is the simple one.

In practice

Most systems fail at the seams rather than inside any one component. Three things worth confirming about eventual consistency before you move on:

  • Someone can say what the current setup is without going to look
  • Decide which reads must be immediate and which can lag — and you know whether that is true here
  • There is a way to tell whether the last change to this helped

Most of the value here comes from doing the first two things, not all of them.