↓ Skip to main content
  1. Certifications/
  2. DP-420 Study Hub/
  3. DP-420 Cheatsheets/

The Consistency Spectrum

Verified against Microsoft Learn on September 29, 2026. Every guarantee, quorum, latency figure, and override rule on this sheet comes from the two pages below.

Consistency level choices · Manage consistency

The five levels
#

Azure Cosmos DB offers five levels, from strongest to weakest. The default level on the account applies to every database and container in it, and Session is the default for new accounts. Azure Cosmos DB guarantees that 100% of read requests meet the level you choose.

Strongest guaranteeHighest availability and read throughput
  1. Strong

    2× read RU

    Linearizable. Every read returns the most recent committed write, in every region. Writes commit in every region before they are acknowledged.

  2. Bounded staleness

    2× read RU

    Reads in another region lag writes by at most K versions or T time, whichever is reached first. Within a region, reads return the newest data.

  3. Session

    Default · 1× read RU

    Read your own writes and write follows reads within one client session, or across clients that share the session token.

  4. Consistent prefix

    1× read RU

    Single-item writes behave as eventual. Items written together in a transaction are always seen together, in commit order.

  5. Eventual

    1× read RU

    Any one of the four replicas answers, so a read can return older data. Ideal when order is irrelevant, such as like counts.

Guarantees at a glance
#

Every region keeps four replicas of each partition. The consistency level decides how many replicas a read consults and where a write must commit.

LevelRead quorumRead costWrite quorumRPO: more than one region, single write region
StrongLocal minority (two replicas)2×Global majority (every region)0
Bounded stalenessLocal minority (two replicas)2×Local majority (three of four)K and T
SessionSingle replica, using the session token1×Local majority (three of four)Under 15 minutes
Consistent prefixSingle replica1×Local majority (three of four)Under 15 minutes
EventualSingle replica1×Local majority (three of four)Under 15 minutes

Write RU is identical at every level. Only reads change: strong and bounded staleness read two replicas, so each read costs twice the RU of the three weaker levels.

  • Single region account: the RPO is under 240 minutes at any level.
  • Multiple write regions: session, consistent prefix, and eventual keep an RPO under 15 minutes; bounded staleness keeps K and T.
  • Strong consistency requires a single write region. A distributed system cannot deliver an RPO and an RTO of zero at the same time, and every write still commits in every region.

Latency
#

Operation99th percentile50th percentile (typical)
Reads, every levelUnder 10 ms4 ms or less
Writes, every levelUnder 10 ms5 ms or less
Writes, strong with more than one region2 × round-trip time between the two farthest regions, plus 10 ms
  • Strong consistency across regions more than 5,000 miles (8,000 kilometers) apart is blocked by default because of write latency. A support request enables it.
  • Dynamic quorum: a strong account with three or more regions can drop slow regions from the write quorum. Three or four regions can drop one region; five regions can drop two. A dropped region serves reads again once it rejoins the quorum.

Bounded staleness settings
#

AccountMinimum K (versions)Minimum T (time)
Single region10 write operations5 seconds
More than one region100,000 write operations300 seconds
  • Lag is measured per physical partition. When a partition exceeds the bound, writes to that partition are throttled until the lag is back within the limit.
  • The minimum K and T define the minimum RPO for bounded staleness.
  • Bounded staleness fits single write region accounts with two or more regions that want near strong reads. With multiple write regions it is an anti-pattern: keep reads and writes in the local region instead.

Session tokens
#

  • The client receives a new session token after every write and sends it with reads.
  • Tokens are partition-bound: use the most recent token for the items you read.
  • A client that has not written to a physical partition holds no token for it, so its reads there behave as eventual. A recreated client starts with an empty token cache.
  • An older token still returns the latest data. The token is a minimum version barrier, not a request for a historical version.
  • Pass tokens between client instances unchanged.

Overriding the account default
#

Overrides apply to reads only. Writes always follow the account default, so a strong account still writes synchronously to every region.

CapabilityConsistencyLevel overrideReadConsistencyStrategy
Relax below the account defaultYesYes
Strengthen above the account defaultNoYes
Set on the client or per requestYesYes
ValuesStrong, Bounded staleness, Session, Consistent prefix, EventualDefault, Session, Eventual, Latest Committed, Global Strong
SDK supportAll SDKs.NET SDK v3.46 and later, Java SDK v4.69 and later
  • When a request sets both, ReadConsistencyStrategy takes precedence.
  • To strengthen consistency with the classic override, raise the account default instead.
  • Restart the application after changing the account default, so every SDK client is recreated with the new level.

Match the requirement to the level
#

When a question asks for the lowest cost or highest throughput option, choose the weakest level that still meets the requirement.

Requirement in the questionWeakest level that meets it
Reads must always return the latest committed write, in every regionStrong
Reads in other regions can lag by at most a set number of versions or secondsBounded staleness
Users must always see their own changesSession
Items written together in a transaction must appear together and in orderConsistent prefix
Lowest cost and highest availability; order is irrelevantEventual

Related