Transacciones - Buenas prácticas


A continuación algunas buenas prácticas a tener en cuenta cuando implementamos procesos transaccionales:

  • Diseñar siempre que sea posible transacciones atómicas
  • Una transacción atómica no puede quedar a medias ante un fallo del sistema o los datos
  • Una transacción atómica debe contener un proceso que pueda ejecutarse de principio a fin
  • Una transacción atómica no debe afectar a otras transacciones.
  • Si una transacción atómica bloquea datos en un repositorio debe de hacerlo en el tiempo más breve posible
  • Una transacción atómica que acabe exitosamente debe poder persistir los datos procesados (COMMIT)
  • Una transacción atómica que acabe erróneamente debe deshacer la persistencia de los datos procesados (ROLLBACK)
  • Al programar transacciones debemos delimitar un ámbito, o sea saber donde comienza y donde termina el proceso transaccional
  • Una transacción atómica no debe a llamar a procesos que comprometan su tiempo de respuesta
  • Una transacción de larga duración es necesaria siempre que: intervenga un flujo humano en el proceso, se llamen procesos de forma asincrónica y demorados en tiempo, se llamen a otras transacciones de corta o larga duración que persistan los datos
  • Una transacción de larga duración debe contener un proceso que pueda ejecutarse de principio a fin
  • Una transacción de larga duración debe poder persistir el estado de los procesos o transacciones que contiene
  • Una transacción de larga duración debe poder ejecutar operaciones de compensación en todos los procesos desde 1 a n-1 ante un fallo en el proceso n.
  • La compensación es un proceso que por lo general implica reglas de negocio encaminadas a anular el efecto de las operaciones persistidas en el proceso transaccional
  • Utilizar un orquestador de transacciones siempre que se necesite modelar un proceso de alto nivel formado por transacciones
  • El orquestador de transacciones puede ser un programa que invoque transacciones
  • El orquestador de transacciones debe llevar y persistir el estado de las transacciones ejecutadas
  • El orquestador de transacciones debe poder hacer COMMIT o ROLLBACK si ejecuta transacciones atómicas
  • El orquestador de transacciones debe poder realizar operaciones de compensación si las transacciones llamadas realizan COMMIT o ROLLBACK


posted under , |

0 comentarios:

Publicar un comentario

Entrada más reciente Entrada antigua Inicio