Idempotence, in programming and mathematics, is a property of some operations such that no matter how many times you execute them, you achieve the same result.
In programming, idempotence can be a property of many different code elements, including functions, methods, requests and statements. Idempotence is a language-agnostic property: It means the same thing in any programming context.
Here’s a simple demonstration of idempotence in HTTP requests:
HTTP GET requests are a method of retrieving specified data from a source, such as getting a bank account balance. GET requests are idempotent: Accessing the same data should always be consistent. On the other hand, POST requests are designed to change the target, such as adding a sum to a bank account. 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: