<!-- llms-explorer concept facts · https://llms-explorer.com/tree/monotonic-reads/ · pack 2026-10-15 · ~1535 tokens -->

# monotonic reads

> Depth-first rabbithole dossier for monotonic reads; source-anchored research pack.

Parent: [Causal Consistency](https://llms-explorer.com/tree/causal-consistency/) · 4 facets · 15 facts · page: https://llms-explorer.com/tree/monotonic-reads/

## Definitions

- [low] Causal consistency is not limited to snapshot reads and applies across read concern levels. Sources: https://dev.to/franckpachot/read-your-writes-on-replicas-postgresql-wait-for-lsn-and-mongodb-causal-consistency-4he2 — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`

## How it works

- [high] Monotonic reads guarantee that read operations do not return results corresponding to an earlier state of the data than a preceding read operation performed by the same process. Sources: https://www.mongodb.com/docs/manual/core/read-isolation-consistency-recency.md, https://jepsen.io/analyses/mongodb-3-6-4, https://jepsen.io/consistency/models/monotonic-reads, https://www.allthingsdistributed.com/2008/12/eventually_consistent.html — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [low] Monotonic reads do not apply to operations performed by different processes, only to reads by the same process. Sources: https://jepsen.io/consistency/models/monotonic-reads — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [low] In MongoDB with read concern local, the monotonic reads guarantee is not satisfied if multiple reads are sequentially executed across different timelines, such as P1 and P2, when failures occur. Sources: https://mongodb.com/blog/post/casual-guarantees-anything-casual — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [low] For all operations a, b, and c where b and c are reads, if a is visible to b, and b is executed prior to and by the same process as c, then a must be visible to c. Sources: https://jepsen.io/consistency/models/monotonic-reads — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`

## Problems, failure modes and limitations

- [low] If a process performs read r1 followed by r2, r2 cannot observe a state prior to the writes reflected in r1, ensuring reads do not go backwards. Sources: https://jepsen.io/consistency/models/monotonic-reads — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`

## Facts and statements

- [low] Monotonic reads can be totally available, allowing all nodes to make progress even during a network partition. Sources: https://jepsen.io/consistency/models/monotonic-reads — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [medium] MongoDB introduced causal consistency in version 3.6 (2017), which guarantees read-your-writes, write-follows-reads, monotonic reads, and monotonic writes. (verified as of 2026-10-15) Sources: https://emptysqua.re/blog/how-to-use-mongodb-causal-consistency/, http://muratbuffalo.blogspot.com/2024/04/implementation-of-cluster-wide-logical.html — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [low] In the presence of node failures or network partitions, causally consistent sessions guarantee causal consistency only for reads with majority readConcern and writes with majority writeConcern. Sources: http://muratbuffalo.blogspot.com/2024/04/implementation-of-cluster-wide-logical.html — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [high] Monotonic writes guarantee that write operations that must precede other writes are executed before those other writes. Sources: https://jepsen.io/analyses/mongodb-3-6-4, https://www.allthingsdistributed.com/2008/12/eventually_consistent.html — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [low] Writes follow reads guarantee that write operations that must occur after read operations are executed after those read operations. Sources: https://jepsen.io/analyses/mongodb-3-6-4 — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [low] Systems that do not guarantee monotonic write consistency are notoriously hard to program. Sources: https://www.allthingsdistributed.com/2008/12/eventually_consistent.html — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [low] Whether read-your-writes, session, and monotonic consistency can be achieved depends on the "stickiness" of clients to the server that executes the distributed protocol for them. Sources: https://www.allthingsdistributed.com/2008/12/eventually_consistent.html — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [low] By adding versions on writes, the client discards reads of values with versions that precede the last-seen version. Sources: https://www.allthingsdistributed.com/2008/12/eventually_consistent.html — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`
- [low] The session ensures later reads observe at least the effects of earlier writes, regardless of which replica serves the read. Sources: https://dev.to/franckpachot/read-your-writes-on-replicas-postgresql-wait-for-lsn-and-mongodb-causal-consistency-4he2 — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/monotonic-reads-3dd8c7bf86/rabbithole-synthesis.md#core`

## Related concepts

- reads — is a part of monotonic reads
- monotonic — is a part of monotonic reads
