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
0 comentarios:
Publicar un comentario