practice
Doi: 10.1145/2160718.2160734
Article development led by
queue.acm.org
Messages may be retried.
Idempotence means that’s OK.
By PAt heLLAND
idempotence
is Not a
medical
Condition
THe DefINITIoN of distributed computing can be
confusing. Sometimes, it refers to a tightly coupled
cluster of computers working together to look like
one larger computer. More often, however, it refers
to a bunch of loosely related applications chattering
together without a lot of system-level support.
This lack of support in distributed computing
environments makes it difficult to write applications
that work together. Messages sent between systems
do not have crisp guarantees for delivery. They can
get lost, and so, after a timeout, they are retried.
The application on the other side of the communication
may see multiple messages arrive where one was
intended. These messages may be reordered and
interleaved with different messages. Ensuring the
application behaves as intended can be difficult to
messaging in
a service-oriented World
This article considers messaging in a
service-oriented environment consisting of a collection of servers that share
the work. The hope is that you can