Aislamiento y anomalías
Qué ve una transacción y qué anomalías evita.
Cada transacción lee una instantánea a su marca de lectura y ve sus propias escrituras. Da igual cuántos rangos y nodos toque.
Cómo funciona
La transacción fija una marca de tiempo al empezar y todas sus lecturas ven los datos a esa marca. Si dos transacciones escriben el mismo documento, la segunda que llega falla con WriteConflict y la etiqueta TransientTransactionError. Dentro de una transacción, local, majority y snapshot leen la misma instantánea.
Qué implica para tu aplicación
Tu aplicación no ve lecturas sucias ni lecturas que cambian a mitad de la transacción. Lo que sí puede pasar es un conflicto de escritura. Ante un conflicto, reintenta la transacción entera, como hace
withTransaction.
Límites
Es aislamiento por instantánea. Dos transacciones que leen datos solapados y escriben documentos distintos pueden confirmarse las dos.