title: Defining Idempotence
body: <p>So "idempotence" can be defined as:</p>
  
  <p>An action, that if performed N times has the same effect as performing the action only once.</p>
  
  <p>Got it, easy enough.</p>
  
  <p>My question is about the subtlety of this definition -is an action considered idempotent by itself, or must you also consider the data being passed into the action?</p>
  
  <p>Let me clarify with an example:</p>
  
  <p>Suppose I have a PUT method that updates some resource, we'll call it <code>f(x)</code></p>
  
  <p>Obviously, <code>f(3)</code> is idempotent, as long as I supply 3 as the input. And equally obvious, <code>f(5)</code> will change the value of the resource (i.e., it will no longer be 3 or whatever value was there previously)</p>
  
  <p>So when we talk about idempotence, are we referring to the generalization of the action/function like (i.e., <code>f(x)</code>), or are we referring to action/function + the data being passed into it (i.e., <code>f(3)</code>)?</p>