<!-- llms-explorer concept facts · https://llms-explorer.com/tree/implicit-vs-explicit-sessions/ · pack 2026-10-15 · ~1478 tokens -->

# implicit vs explicit sessions

> Depth-first rabbithole dossier for implicit vs explicit sessions; source-anchored research pack.

Parent: [Causal Consistency](https://llms-explorer.com/tree/causal-consistency/) · 4 facets · 13 facts · page: https://llms-explorer.com/tree/implicit-vs-explicit-sessions/

## How it works

- [low] An explicit session is started by the application calling `startSession`, while an implicit session is started by the driver when an operation is called without an explicit session. Sources: https://raw.githubusercontent.com/mongodb/specifications/master/source/sessions/driver-sessions.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#core`
- [low] Session consistency is a practical version of causal consistency where a process accesses the storage system in the context of a session, and using sessions makes the stickiness of clients to the server explicit. Sources: https://www.allthingsdistributed.com/2008/12/eventually_consistent.html — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#core`

## Problems, failure modes and limitations

- [low] If a session terminates due to a failure scenario, a new session must be created, and the consistency guarantees do not overlap the sessions. Sources: https://www.allthingsdistributed.com/2008/12/eventually_consistent.html — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#core`

## Comparisons and alternatives

- Fact 29 mentions "Max has been called on to help in three (3) separate instances" which is unrelated to the technical definition of implicit vs explicit sessions and appears to be noise or a misclassified fact. Sources: https://jira.mongodb.org/browse/DRIVERS-2860 — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#disagreements`
- Fact 37 lists "Fix Version/s: 3.6.0-rc0" which is a specific version tag for a fix, not a general property of implicit vs explicit sessions. Sources: https://jira.mongodb.org/browse/SERVER-30977 — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#disagreements`

## Facts and statements

- [medium] For explicit sessions, the default value of the `causalConsistency` property is `not supplied`, and if no value is supplied, it is inherited from the global default which is defined to be `true`. Sources: https://raw.githubusercontent.com/mongodb/specifications/master/source/causal-consistency/causal-consistency.md, https://jira.mongodb.org/browse/DRIVERS-2369 — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#core`
- [low] For implicit sessions, the `causalConsistency` property MUST be set to `false` to avoid potential conflicts with an operation's read concern level, a requirement established on 2022-11-11. (verified as of 2026-10-15) Sources: https://raw.githubusercontent.com/mongodb/specifications/master/source/causal-consistency/causal-consistency.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#core`
- [low] Drivers that enable `causalConsistency` in implicit sessions by default will require code changes, whereas the Java driver sets `causalConsistency=false` for all implicit sessions and is not affected. Sources: https://jira.mongodb.org/browse/DRIVERS-2369 — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#patterns`
- [low] The team maintaining mongosync uses a workaround to use explicit sessions for operations requiring read concern "linearizable" or "available" and sets `causalConsistency=false` on the session. Sources: https://jira.mongodb.org/browse/DRIVERS-2369 — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#patterns`
- [low] Read concern "available" and read concern "linearizable" are unavailable for use with causally consistent sessions and transactions. Sources: https://www.mongodb.com/docs/manual/reference/read-concern.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#core`
- [low] Read concern "local" and read concern "majority" are available for use with or without causally consistent sessions and transactions. Sources: https://www.mongodb.com/docs/manual/reference/read-concern.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#core`
- [low] The implicit default write concern is `w: majority`, and the default global write concern is majority. Sources: https://www.mongodb.com/docs/manual/reference/write-concern.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/implicit-vs-explicit-sessions-034f5ee1db/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/implicit-vs-explicit-sessions-034f5ee1db/rabbithole-synthesis.md#core`

## Related concepts

- sessions — is a part of implicit vs explicit sessions
- implicit — is a part of implicit vs explicit sessions
- explicit — is a part of implicit vs explicit sessions
