MongoDB garantiza atomicidad a nivel de : una escritura que modifica varios campos de ese documento se observa completa o no se observa. Ningún lector ve un estado intermedio con solo parte de los operadores aplicados.
Cada documento se actualiza atómicamente, pero el conjunto completo no es una unidad atómica. Durante la operación otros clientes pueden observar algunos documentos actualizados y otros no. Un fallo puede dejar progreso parcial.
Insertar un documento es atómico respecto a ese documento. Eliminarlo también. Un sequence insert + update de otro documento no es atómico sin transacción o rediseño.
Una operación de escritura sobre un documento ya tiene atomicidad; envolverla en una transacción no añade valor automáticamente y sí puede añadir complejidad.
Son necesarias cuando una invariantes legítima cruza documentos o colecciones, por ejemplo transferir saldo entre dos cuentas. Antes de usarlas pregunta:
¿el boundary está bien diseñado?
¿la operación debe ser realmente all-or-nothing?
¿puede resolverse con preconditions e idempotencia?
Una escritura puede confirmarse en el servidor y perderse la respuesta. Atomicidad no elimina esta ambigüedad. Utiliza retryable writes cuando aplica, operation IDs o reconciliación.
Atomicidad describe indivisibilidad. Write concern describe qué confirmación espera el cliente. Una escritura atómica con w: 1 y una con majority tienen distinta tolerancia a failover.
La principal unidad transaccional natural de MongoDB es el documento. Diseñar buenos boundaries permite expresar invariantes mediante operadores y filtros atómicos. Cuando una regla cruza documentos, evalúa transacción, rediseño o workflow idempotente sin confundir atomicidad con durabilidad o consistencia global.