Idempotência
TLDR
Idempotência significa: fazer a mesma operação mais de uma vez deve ter o mesmo efeito que fazer uma vez — não “duplicar” o efeito. Exemplo: o cliente clica em “pagar” duas vezes; o sistema não pode cobrar duas vezes. Se o fluxo não for desenhado para isso, o problema vira cobrança duplicada, estorno e perda de confiança — ou seja, problema de produto e atendimento, não só “bug de engenharia”.
Por que isso importa
Em fluxos de pagamento, cobrança ou criação de algo crítico (pedido, reserva), a pergunta “e se o usuário clicar de novo?” deve estar no escopo. Quando engenharia fala “precisamos de idempotência”, é para evitar duplicidade e inconsistência — vale incluir isso no desenho do fluxo.
Conceito (em linguagem simples)
- Operação idempotente: Repetir a ação não muda o resultado além da primeira vez. Exemplo: “definir saldo = 100” é idempotente (fazer 2x = saldo 100); “somar 10 ao saldo” não é (fazer 2x = +20).
- Na prática: Botão de pagar, confirmar pedido, enviar notificação — o sistema deve tratar “duplo clique” ou “reenvio por falha de rede” sem duplicar cobrança, pedido ou envio.
Vale perguntar: esse fluxo é idempotente? O que acontece se o usuário repetir a ação?
Conclusão
Para fluxos que mexem em dinheiro ou em estado crítico, idempotência deve ser requisito explícito. Quem pergunta “e se clicar duas vezes?” evita problema sério depois.