Skip to content

Conversation

@rachel-mack
Copy link
Collaborator

@rachel-mack rachel-mack commented Dec 16, 2025

This snippet will be applies to all driver's docs sets, along with instructions to update the existing transaction example to ensure that:

  • The session contains at least two operations
  • The write concerns is set to majority at the client level

Copy link
Collaborator

@jeff-allen-mongo jeff-allen-mongo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rachel-mack thanks for this update! Left a few minor comments.

Comment on lines 8 to 9
ACID transactions using sessions. These transactions use the snapshot isolation
level so applications see a consistent set of data while the transaction is
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a nit, but a small suggestion to possibly better explain what we mean by "snapshot isolation".

Suggested change
ACID transactions using sessions. These transactions use the snapshot isolation
level so applications see a consistent set of data while the transaction is
ACID transactions using sessions. Sessions operate on data from a single point-in-time snapshot, so applications see a consistent set of data while the transaction is

operations on multiple documents or collections, MongoDB supports multi-document
ACID transactions using sessions. These transactions use the snapshot isolation
level so applications see a consistent set of data while the transaction is
running and write concerns to ensure changes are safely saved. With these
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re "write concerns to ensure changes are safely saved.", I'm not totally sure I understand what this means. Maybe something like:

"changes to data are committed safely" ?

level so applications see a consistent set of data while the transaction is
running and write concerns to ensure changes are safely saved. With these
features, MongoDB provides ACID guarantees that are comparable to those found in
traditional relational databases. No newline at end of file
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How important is this last sentence? I'm a little concerned that it could potentially read like we are "comparable", but maybe not as a good. But if this is a requirement from product or similar, I'm fine leaving.

Copy link
Collaborator

@jeff-allen-mongo jeff-allen-mongo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Copy link
Collaborator

@colbying colbying left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what context are these documentation changes? could you link me to a staging URL so I can understand the context?


By default, operations on single documents conform to ACID standards. For
operations on multiple documents or collections, MongoDB supports multi-document
ACID transactions by using sessions. Sessions operate on data from a single
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

using sessions alone won't guarantee that your mutli-document writes will happen atomically, you need to create a transaction within that session.

transactions are required in some industries where errors or partial updates
could lead to serious financial, legal, or safety consequences.

By default, operations on single documents conform to ACID standards. For
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

who is the intended reader here? for readers who are technical, "conform to ACID standards" may be a bit too vague of a statement here.

Consistency - MongoDB offers causal consistency using sessions

Isolation - Any insert/update/delete of a single document is atomic and fully isolated; other clients never see a partial update to a document. MongoDB’s multi-document transaction protocol is designed to provide snapshot isolation: a transaction reads from a stable snapshot taken at (or just before) the transaction start, and other clients cannot see its in-progress writes.

Durability - as long as you have write concern: majority, your writes are durable though node failures.

It depends on how technical the reader is, but I would er on the side of including some of the nuance above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants