Isolation and anomalies
What a transaction sees and which anomalies it avoids.
Each transaction reads a snapshot at its read timestamp and sees its own writes. It does not matter how many ranges and nodes it touches.
How it works
The transaction fixes a timestamp when it starts and all its reads see the data at that timestamp. If two transactions write the same document, the second to arrive fails with WriteConflict and the TransientTransactionError label. Inside a transaction, local, majority and snapshot read the same snapshot.
What it means for your application
Your application sees no dirty reads and no reads that change halfway through the transaction. What can happen is a write conflict. On a conflict, retry the whole transaction, as withTransaction does.
Limits
It is snapshot isolation. Two transactions that read overlapping data and write different documents can both commit.