Collection of Helpful Articles for Understanding and Implementing Idempotence in Design
I’ve compiled helpful articles for understanding “idempotence” and designing and implementing systems with it in mind.
As engineers advance in their careers, there comes a time when they need to design and implement systems with idempotence in mind.
I hope this article can help engineers who have questions like “What does idempotence mean?” and “What do I need to consider when designing and implementing systems that guarantee idempotence?”
First, I’ve extracted information about idempotence from Wikipedia, focusing on engineer-relevant information.
Idempotence (べきとうせい in Japanese)
Broadly speaking, it’s a concept where performing an operation once or multiple times yields the same result.
Idempotence in Information Engineering
In information engineering, idempotence refers to operations that have the same effect whether performed once or multiple times. Specifically, it refers to operations where errors or inconsistent states don’t change no matter how many times they’re performed.
Besides Wikipedia, NTT Data’s series of articles explain idempotence clearly using system development examples, so I recommend reading them as well.
..., there's a concept called "idempotence." Idempotence means "getting the same result no matter how many times you perform the same operation."For example, suppose there’s a “program” that says “create a user named abc with specified attributes.” No matter how many times you execute this “program,” the result remains the same: a user named “abc” is created with the specified attributes. In other words, in the previous example, if a package is already installed, the desired behavior is to “do nothing.”
The “Retry and Idempotence Design Patterns” series on Treasure Data’s Furuhashi’s technical blog is helpful.
When implementing shell scripts with idempotence in mind, the following article is helpful.
If you have the opportunity to teach native English-speaking engineers about idempotence, I recommend having them read the following articles.
I hope that properly understanding idempotence will help with good system design and implementation.
That’s all from the Gemba.