#dusk $DUSK @Dusk
Aquela outra vez, eu estava comprando ingressos de cinema quando a tela de pagamento travou, então quase cliquei de novo. Felizmente, o e-mail de confirmação chegou primeiro. Uma compra e eu quase paguei duas vezes.

Pensei nisso enquanto lia como a Dusk lida com depósitos do Moonlight. A Dusk usa o ID da transação como uma chave de idempotência, então um scanner pode reler os dados após uma falha sem creditar a mesma transação duas vezes. O que chamou minha atenção foi o aviso: não use o memo para isso.

No começo, pensei que fosse apenas para evitar créditos duplicados. Mas um memo descreve uma transação; o ID da transação identifica a própria transação. Quando um sistema trava e começa de novo, essa distinção diz a ele se está vendo algo novo ou apenas vendo o passado de novo.

Foi então que a idempotência ficou mais interessante para mim. Um sistema financeiro não precisa apenas processar o que aconteceu corretamente; ele também precisa reconhecer o que já aconteceu. Se uma falha obriga um sistema a olhar para o passado de novo, como garantir que o passado não seja contado duas vezes?
$PEPE $MUBARAK