Idempotência, em programação e matemática, é uma propriedade de algumas operações tais que não importa quantas vezes você as execute, você alcança o mesmo resultado.
Na programação, idempotência pode ser uma propriedade de muitos elementos de código diferentes, incluindo funções, métodos, pedidos e declarações. A idempotência é uma propriedade agnóstica da linguagem: Significa a mesma coisa em qualquer contexto de programação.
Aqui está uma demonstração simples de idempotência em pedidos HTTP:
P>Requisitos GET HTTP são um método de recuperação de dados especificados de uma fonte, tal como obter um saldo de uma conta bancária. Os pedidos de GET são idempotentes: O acesso aos mesmos dados deve ser sempre consistente. Por outro lado, as solicitações POST são projetadas para alterar o alvo, como adicionar uma soma a uma conta bancária. As such, a POST request should change the result and that means it’s not idempotent.
Benjamin Peirce, an American mathematician of the 19th century who taught at Harvard for over 50 years, coined the word idempotent to refer to algebraic elements that don’t change when raised to a positive integer power. The literal meaning of the word is “of the same power,” from the Latin idem, meaning same and Old French potence, meaning power.
Corey Schafer explains idempotence: