Subprocesso de Transação(Transaction Sub-Process)
Um subprocesso com semântica tudo-ou-nada: ou todos os passos concluem e a transação confirma, ou ela é cancelada e os passos concluídos são compensados. Desenhado com borda dupla.
O Subprocesso de Transação (Transaction Sub-Process) embrulha passos que devem ter sucesso como unidade — a clássica reserva de viagem: voo + hotel + pagamento. Seu protocolo tem três desfechos: sucesso (sai pelo fluxo normal), cancelamento (um Fim de Cancelamento dispara dentro → tratadores de compensação desfazem os passos concluídos → saída pela Borda de Cancelamento) e falha do protocolo (algo quebrou no meio; saída por borda de erro).
Quando usar e evitar
Quando usar
Para unidades de negócio tudo-ou-nada: reservas multi-itens, lançamentos coordenados, pedidos em pacote.
Quando os passos concluídos têm tratadores de compensação declarados, tornando o desfazer automático no cancelamento.
Quando o negócio distingue explicitamente confirmar / cancelar / falhar.
Quando NÃO usar
Para agrupamento comum sem semântica transacional — subprocesso embutido.
Quando os passos não podem ser compensados — o protocolo não teria com que desfazer.
Para transações ACID técnicas de banco — este é um protocolo de *negócio*, de vida muito mais longa.
Exemplo de negócio
Reservando uma viagem como transação

Abra este exemplo no editor de processos da HEFLO e explore o diagrama por dentro.
Abrir no editor HEFLO →Passo a passo
- A Transação (destacada, borda dupla) reserva voo e hotel como unidade.
- Se o cliente desistir, o Fim de Cancelamento interno dispara: as reservas concluídas são compensadas automaticamente.
- O token sai pela Borda de Cancelamento para o caminho de reembolso — jamais deixando meia viagem reservada.
Diferenças
Transação vs. Subprocesso Embutido
Ambos contêm fluxo; só a transação carrega o protocolo cancelar-e-compensar (borda dupla, Fim/Borda de Cancelamento, compensação automática). Se nada precisa ser desfeito, o embutido comum basta.
FAQ
O que dispara a compensação dentro da transação?
Alcançar um Fim de Cancelamento dentro dela (ou um cancelamento externo). O motor então roda os tratadores das atividades concluídas em ordem reversa.
O que é o desfecho de 'falha do protocolo'?
Uma falha da própria transação (modelada com borda de erro) — nem sucesso limpo, nem cancelamento ordeiro.