Metodo executeOn é executado duas vezes?

Porque o método executeOn() da interface Transaction é executado sempre duas vezes?
Achei que minhas implementações estavam erradas, mas quando debuguei o aplicativo demo1 que vem com o Prevayler notei que isso também acontece.
Alguém sabe explicar o porquê disso?

O prevayler executa a transacao duas vezes para se certificar que ela nao vai jogar excecoes nem estragar o modelo… se nao me engano, isso eh desabilitavel, mas nao deveria ser um problema :slight_smile:

dependendo da transação, isto é um problema sim,

peguemos o exemplo classico de uma transferencia financeira.

o cara vai transferir o dinheiro duas vezes??

…vai :smiley:

Ele executa a transacao duas vezes, uma em um “throwaway”, e caso tudo de certo, no sistema real. Ou seja, o resultado final eh que o dinheiro nao eh transferido duas vezes no sistema real. Mas eh transferido duas vezes na aplicacao como um todo.

legal esta abordagem,
gostei da ideia :slight_smile: