I was going through the documentation of Oracle Cloud IaaS, when I came across a vaguely familiar term “Idempotent”.
One great thing I feel strongly with all this Cloud-mania is the recollection of various theoretical computing concepts which we learned/read in university courses way back. From networking through web concepts to operating system; there are a plethora of concepts which are coming back into practice very actively in the everyday life of cloud professionals.
Two of these words that are a mouthful are Idempotent and Nullipotent. These are types of actions. The difference between Idempotent and Nullipotent action is the result they return when performed.
In simple terms;
When executed an Idempotent action would provide a result first time and then this result would remain same, no matter how many times the action is repeated after that first time.
An Nullipotent action would always provide same result whether executed several times or not executed at all.
So in terms of Cloud where REST (Representational State Transfer) APIs and HTTP (Hyper Text Transfer Protocol) are norm, these 2 concepts of Idempotent and Nullipotent are very important. In order to manage resources in cloud (through URI), there are various HTTP actions which could be performed. Some of these actions are Idempotent and some are Nullipotent.
Like GET action of HTTP is nullipotent. No matter how many times you execute this, it doesn’t affect state of the resource and would return same result. And Put is Idempotent action of HTTP which would change the state of resource first time its executed and all subsequent executions of same PUT action would be like as first time.