Eventos

Evento Intermediário de Lançamento de Compensação(Intermediate Compensation Throw Event)

Aciona os tratadores de compensação de atividades já concluídas — o jeito BPMN de “desfazer” trabalho finalizado. Círculo duplo fino com setas de retrocesso preenchidas.

Trabalho de negócio raramente admite rollback como banco de dados — um hotel reservado precisa ser *cancelado*, um cartão cobrado precisa ser *estornado*. O Lançamento de Compensação (Compensation Throw Event) invoca os tratadores de compensação (anexados via eventos de borda de compensação) das atividades que já concluíram, em ordem reversa.

Quando usar e evitar

Quando usar

  • Quando uma falha tardia exige desfazer passos anteriores concluídos (cancelar reservas, estornar lançamentos).

  • Em sagas / transações longas em que rollback clássico é impossível.

  • Em par com eventos de borda de compensação que definem *como* cada atividade é desfeita.

Quando NÃO usar

  • Quando nada foi concluído ainda — apenas roteie para um fim.

  • Para retries técnicos de um passo que falha — isso é tratamento de erro, não compensação.

  • Quando um Subprocesso de Transação com Fim de Cancelamento já orquestra o desfazer — não dispare em dobro.

Exemplo de negócio

Desfazendo a reserva de hotel após pagamento recusado

Diagrama BPMN: Desfazendo a reserva de hotel após pagamento recusado
Desfazendo a reserva de hotel após pagamento recusado

Abra este exemplo no editor de processos da HEFLO e explore o diagrama por dentro.

Abrir no editor HEFLO →

Passo a passo

  1. Reservar hotel conclui; sua borda de compensação + tratador “Cancelar reserva do hotel” definem o desfazer.
  2. O pagamento é recusado no gateway.
  3. O Lançamento de Compensação (destacado) dispara — o motor invoca o tratador da reserva concluída, cancelando-a — e o processo termina com a solicitação rejeitada.

Diferenças

Compensação vs. Erro

Erro trata *este* passo que falhou. Compensação desfaz passos *anteriores bem-sucedidos* porque uma condição posterior os invalidou. Costumam trabalhar juntos: um erro aciona o caminho que lança a compensação.

FAQ

Em que ordem os tratadores executam?

Ordem reversa de conclusão — a atividade finalizada mais recentemente é compensada primeiro, como desempilhar.

Atividades sem tratador são desfeitas?

Não — a compensação só alcança atividades que declararam tratador via evento de borda de compensação.

Elementos relacionados