acm-header
Sign In

Communications of the ACM

Practice

Idempotence Is Not a Medical Condition


Idempotence Is Not a Medical Condition, illustration

Credit: Studio Tonne

Messages may be retried. Idempotence means that's OK.

The full text of this article is premium content


Comments


CACM Administrator

The following letter was published in the Letters to the Editor of the December 2013 CACM (http://cacm.acm.org/magazines/2013/12/169937).
--CACM Administrator

Pat Helland's article "Idempotence Is Not a Medical Condition" (May 2012) addressed a serious reliability topic messaging in a service-oriented world but in an irreverent way. His axioms (such as "Every application is allowed to get bored and abandon its participation in the work.") are generally obvious when being read but often ignored by software developers in the real-world press of development.

Along with the proliferation of tools supporting distributed Web apps, it is easier than ever for software developers to (mostly) ignore the pitfalls of underlying distributed messaging, at least until the software is stressed in a production environment. Helland pointed us toward the dragons lurking in our assumptions concerning the robustness of messaging in a networked environment, concluding with "basic principles" cast as "four insidious illuminations":

+Because retries happen, all messages must be indempotent;
+Messages can be reordered;
+Hidden effects can cause one's dialogue partner to miss part(s) of a conversation; and
+Guaranteed delivery of the last message is impossible.

. . . ignorance of which can result in latent problems to surface only when repair is most costly.

Kudos to Helland for illuminating a significant source of bugs, amusing us in the process.

Steven Pothier
Tucson, AZ


Displaying 1 comment

Log in to Read the Full Article

Sign In

Sign in using your ACM Web Account username and password to access premium content if you are an ACM member, Communications subscriber or Digital Library subscriber.

Need Access?

Please select one of the options below for access to premium content and features.

Create a Web Account

If you are already an ACM member, Communications subscriber, or Digital Library subscriber, please set up a web account to access premium content on this site.

Join the ACM

Become a member to take full advantage of ACM's outstanding computing information resources, networking opportunities, and other benefits.
  

Subscribe to Communications of the ACM Magazine

Get full access to 50+ years of CACM content and receive the print version of the magazine monthly.

Purchase the Article

Non-members can purchase this article or a copy of the magazine in which it appears.
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account