Mantén coherentes los cambios relacionados
Por ejemplo, una transferencia requiere que el débito y el crédito se confirmen juntos. Si solo se aplica uno, el estado almacenado deja de representar la operación prevista.
Una transacción también puede proteger una actualización que lee un valor y luego escribe un resultado dependiente. Si puede haber cambios simultáneos, usa el aislamiento o bloqueo adecuado para la base y la regla empresarial.
Evita trabajo externo o prolongado dentro de la transacción
No mantengas una transacción abierta mientras esperas a una persona, un servicio de red o un cálculo largo. Las transacciones prolongadas retienen recursos y complican la concurrencia.
El correo, los pagos o las cargas externas normalmente no pueden revertirse con un rollback de la base de datos. Coordina esos efectos con estados explícitos, una outbox o una compensación y prueba qué pasa si el proceso se detiene entre pasos.