Pattern

Consistency

Decide, and defend, how strongly different parts of a system must agree on the current state versus how available they stay under failure.

What it is

Consistency questions sit inside a larger system design and ask you to pick, for one specific piece of shared state, how strongly readers and writers must agree with each other, and what you give up to get it. The honest answer is almost never "always strongly consistent" or "always eventual" — it's naming which operation needs a hard guarantee (no double charge, no lost edit, read-your-own-write) and which can tolerate a visible lag, then choosing a mechanism (compare-and-set, a single ordered log, quorum writes, a lease) that delivers exactly the guarantee you named and nothing more expensive.

When it applies

Tells in the problem

The classic mistake

Answering with a single global label — "we'll use strong consistency" or "eventual consistency is fine" — for the whole system, instead of naming which specific operation needs which guarantee and why the rest can be weaker. This happens because "consistency model" sounds like a one-time architectural choice you declare up front, when in a real system different pieces of state (a file's own version history versus its folder listing, a wallet balance versus a merchant's daily settlement figure) legitimately need different answers. Catch it by asking, for every piece of shared state in your design, "what exactly would go wrong if a reader saw a stale value here, and how stale can it be before that matters" — a system with one answer to that question everywhere is being under-thought, not simplified.

Questions to start with

All 4 consistency questions

Problem statement, examples and hints are free on every page; the worked approach, solution and tests are in the company guides.

Free starter pack

13 must-tier questions with full solutions

Sign in with an email — no purchase — and read them in the full reader.

No password, no spam. One sign-in email; you can read the pack in the full reader.