From a210ac500af69043c3089f519bede559b97a6e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tamarelle?= Date: Wed, 13 May 2026 16:07:40 +0200 Subject: [PATCH] Clarify operationTime update rule excludes unacknowledged writes The general rule stated drivers "MUST save the operationTime whether the operation succeeded or not", while the "Unacknowledged writes" section stated the operationTime is not updated because no response is received. These appeared contradictory. Clarify that the MUST applies only to acknowledged operations, and add a cross-reference to the Unacknowledged writes section explaining why. --- source/causal-consistency/causal-consistency.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/causal-consistency/causal-consistency.md b/source/causal-consistency/causal-consistency.md index 026619b7fb..48cef92ed5 100644 --- a/source/causal-consistency/causal-consistency.md +++ b/source/causal-consistency/causal-consistency.md @@ -196,9 +196,9 @@ started with `causalConsistency = true` then all operations using that session w There are no new server commands related to causal consistency. Instead, causal consistency is implemented by: -1. Saving the `operationTime` returned by 3.6+ servers for all operations in a property of the `ClientSession` object. - The server reports the `operationTime` whether the operation succeeded or not and drivers MUST save the - `operationTime` in the `ClientSession` whether the operation succeeded or not. +1. Saving the `operationTime` returned by 3.6+ servers for all acknowledged operations in a property of the + `ClientSession` object. The server reports the `operationTime` whether the operation succeeded or not, and drivers + MUST save the `operationTime` in the `ClientSession` whether the operation succeeded or not. 2. Passing that `operationTime` in the `afterClusterTime` field of the `readConcern` field for subsequent causally consistent read operations (for all commands that support a `readConcern`) 3. Gossiping clusterTime (described in the Driver Session Specification) @@ -403,6 +403,9 @@ resolving many discussions of spec details. A final reference implementation mus ## Changelog +- 2026-05-13: Clarify that the "MUST save operationTime" rule applies only to acknowledged operations; unacknowledged + writes receive no server response and do not update the session's `operationTime`. + - 2024-02-08: Migrated from reStructuredText to Markdown. - 2022-11-11: Require `causalConsistency=false` for implicit sessions.