Articulo de referencia

Transacción compensatoria

La ejecución de un proceso de negocio consta de una o más transacciones . Cada transacción puede constar de varias operaciones individuales, pero en su conjunto mueve el sistema...

La ejecución de un proceso de negocio consta de una o más transacciones . Cada transacción puede constar de varias operaciones individuales, pero en su conjunto mueve el sistema entre estados consistentes.

Existen dos grupos de sistemas en los que se puede aplicar la transacción compensatoria :

1. En el contexto de una base de datos, esto suele lograrse fácilmente mediante transacciones y el mecanismo de confirmación / reversión . [1] Se podría implementar una lógica de transacción compensatoria como complemento a la base de datos que admita la confirmación/reversión. En ese caso, podemos reducir la granularidad de las transacciones comerciales.

2. En el caso de sistemas que no dispongan de un mecanismo de confirmación/reversión, se puede deshacer una transacción fallida con una transacción compensatoria , que devolverá el sistema a su estado inicial. Normalmente, se trata de una solución alternativa que debe implementarse manualmente y que no garantiza que el sistema siempre finalice en un estado coherente. Es posible que el diseñador del sistema deba tener en cuenta lo que sucede si la transacción compensatoria también falla.

Las transacciones compensatorias también se utilizan en los casos en que una transacción tiene una vida útil prolongada (comúnmente llamadas Transacciones Saga ), por ejemplo, en un proceso comercial que requiere la intervención del usuario. En tales casos, los datos se almacenarán de forma permanente, pero es posible que posteriormente sea necesario revertirlos, tal vez debido a que el usuario opte por cancelar la operación. A diferencia de las reversiones convencionales, normalmente se requerirá una lógica comercial específica para revertir una transacción de larga duración y restaurar el sistema a su estado original. Este tipo de transacción difiere de las transacciones distribuidas (que a menudo se implementan utilizando el protocolo de confirmación de dos fases ), porque, si bien ambos tipos de transacciones pueden dar como resultado la actualización de múltiples almacenes de datos, las transacciones compensatorias permiten que las actualizaciones abarquen un largo período de tiempo.

Las transacciones de compensación a menudo se diseñan en servicios web que participan en la ejecución de procesos de negocio que forman parte de una solución de arquitectura orientada a servicios .

Tenga en cuenta que las transacciones de compensación no siempre funcionan. [2]

Véase también

Referencias

  1. ^ Gray, Jim (junio de 1981). "El concepto de transacción: virtudes y limitaciones". Actas de la Conferencia sobre bases de datos de gran tamaño .
  2. ^ Fundamentos de la arquitectura de software: un enfoque de ingeniería . O'Reilly Media. 2020. ISBN 978-1492043454.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Transacción_compensatoria&oldid=1227504219"