Actividades

Compensation Marker

El marcador de rebobinado (◀◀) que designa una actividad como gestor de compensación — ejecutada únicamente para deshacer una actividad completada, nunca por el flujo normal.

Una actividad marcada para compensación es la receta de anulación de otra actividad: enlazada desde el Evento de Contorno de Compensación de esa actividad mediante una asociación punteada, permanece completamente fuera del flujo normal. Solo se ejecuta cuando se lanza una compensación tras completarse su actividad asociada.

Cuándo usar y evitar

Cuándo usar

  • Para definir el inverso de negocio de cada paso consecuente: cancelar una reserva, reembolsar un cargo, revertir un asiento.

  • En transacciones y sagas, donde los protocolos de cancelación/compensación los invocan automáticamente.

  • Un gestor por actividad — una anulación precisa y dirigida.

Cuándo NO usar

  • Para trabajo alcanzable por el flujo de secuencia normal — los gestores no pueden conectarse dentro del flujo.

  • Cuando el efecto de la actividad no tiene un inverso significativo — la compensación no puede inventar uno.

  • Como limpieza genérica no relacionada con una actividad completada específica.

Ejemplo de negocio

La receta de anulación de una reserva de hotel

Diagrama BPMN: La receta de anulación de una reserva de hotel
La receta de anulación de una reserva de hotel

Abra este ejemplo en el editor de procesos de HEFLO y explore el diagrama por dentro.

Abrir en el editor HEFLO →

Paso a paso

  1. Cancelar reserva de hotel (resaltado, marcador de rebobinado) cuelga de la tarea de reserva mediante la asociación punteada — fuera del flujo normal.
  2. Permanece inactiva durante la ejecución normal.
  3. Cuando el pago es rechazado y se lanza una compensación, el motor la invoca para deshacer la reserva completada.

Diferencias

Gestor de compensación vs ruta de excepción

Una ruta de excepción (a partir de un contorno de error) trata un paso que *falló durante su ejecución*. Un gestor de compensación deshace un paso que *tuvo éxito* pero debe revertirse más tarde. Fallo → excepción; anulación retroactiva → compensación.

Preguntas frecuentes

¿Por qué no puede tener flujos de secuencia entrantes?

Por especificación: las actividades de compensación se invocan exclusivamente mediante el mecanismo de compensación, nunca mediante tokens.

¿Recibe los datos de la actividad original?

Sí — los motores proporcionan la instantánea de la actividad completada para que la anulación pueda referenciar exactamente lo que se hizo.

Elementos relacionados