--- date: 20201126 id: 48609306-f2e9-4d01-b774-7d3ec34703aa title: idempotent --- # Origin Idem is latin for 'same'. # Definition An operation or function, that when called multiple times will always produce the same result. # Examples ## Idempotent ``` javascript console.log(1 * 1 * 1 * 1) ``` ``` javascript const set = new Set() set.add('blaat') set.add('blaat') set.add('blaat') console.log(set) // { 'blaat' } ``` ### Practial examples - Get, Put & Delete endpoints on a REST api - Payment operations. Reposting the same form should not result in multiple charges to the customer. ## Non idempotent ``` javascript console.log(2 * 2 * 2 * 2) ``` ``` javascript const arr = [] arr.push('blaat') arr.push('blaat') arr.push('blaat') console.log(arr) // [ 'blaat', 'blaat', 'blaat' ] ```