stringtranslate.com

Transacción compensatoria

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

Hay 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] La lógica de transacción de compensación podría implementarse como adicional además de la base de datos que admite la confirmación/reversión. En ese caso, podemos disminuir la granularidad de las transacciones comerciales.

2. Para sistemas sin un mecanismo de confirmación/reversión disponible, se puede deshacer una transacción fallida con una transacción de compensación , que devolverá el sistema a su estado inicial. Normalmente, esto es sólo una solución alternativa que debe implementarse manualmente y no puede garantizar que el sistema siempre termine en un estado consistente. Es posible que el diseñador del sistema necesite considerar qué sucede si la transacción de compensación también falla.

Las transacciones de compensación también se utilizan en el caso de que una transacción tenga una duración prolongada (comúnmente denominadas Transacciones Saga ), por ejemplo, en un proceso de negocio que requiere la participación del usuario. En tales casos, los datos se almacenarán permanentemente, 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 empresarial 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 (a menudo implementadas mediante el protocolo de confirmación de dos fases ), porque aunque ambos tipos de transacciones pueden dar como resultado la actualización de múltiples almacenes de datos, las transacciones de compensación 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]

Ver 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 muy grandes .
  2. ^ Fundamentos de la arquitectura de software: un enfoque de ingeniería . Medios O'Reilly. 2020.ISBN 978-1492043454.