Overview#Idempotent, in computer science, the term is used more comprehensively to describe an operation that will produce the same results if executed once or multiple times.
This may have a different meaning depending on the context in which it is applied. In the case of subroutine calls with side effects, for instance, it means that the modified state remains the same after the first call. In Functional Programming, though, an Idempotent function is one that has the property f(f(x)) = f(x) for any value x
Simply put, an operation is Idempotent if it produces the same result when called over and over. An identical request should return an identical Response when done twice, two thousand, or two million times. The source of most confusion around this concept comes with the idea of identical results, however. What we expect to see is identical results in the return form rather than in the return value.
Idempotent in Information Technology#Idempotent, in Information Technology, may have a different meaning depending on the context in which it is applied:
- in imperative programming, a subroutine with side effects is Idempotent if the system state remains the same after one or several calls, in other words if the function from the system state space to itself associated to the subroutine is Idempotent in the mathematical sense given in the definition;
- in Functional Programming, a pure function is Idempotent if it is Idempotent in the mathematical sense given in the definition.
Similarly, changing a customer's address is typically Idempotent, because the final address will be the same no matter how many times it is submitted.
However, placing an order for a car for the customer is typically not Idempotent, since running the call several times will lead to several orders being placed.
Canceling an order is Idempotent, because the order remains canceled no matter how many requests are made.
More Information#There might be more information for this subject on one of the following:
- [#1] - Idempotence - based on information obtained 2016-05-21-
- [#2] - Understanding Idempotency and Safety in API Design - based on information obtained 2020-01-22