Even when a sender application only sends a message once, the receiver application may receive the message more than once.
How can a message receiver deal with duplicate messages?
Design a receiver to be an Idempotent Receiver--one that can safely receive the same message multiple times.
The term idempotent is used in mathematics to describe a function that produces the same result if it is applied to itself, i.e. f(x) = f(f(x)). In Messaging this concepts translates into a message that has the same effect whether it is received once or multiple times. This means that a message can safely be resent without causing any problems even if the receiver receives duplicates of the same message.
... Read the entire pattern in the book Enterprise Integration Patterns
Related patterns: Command Message, Guaranteed Delivery, Messaging, Resequencer
You can reuse the following elements under the Creative Commons Attribution license: pattern icon, pattern name, problem and solution statements (in bold), and the sketch. Other portions are protected by copyright.
Enterprise Integration Patterns
The classic, as relevant as ever. Over 90,000 copies sold.
The Software Architect Elevator
Learn how architects can play a critical role in IT transformation by applying their technical, communication, and organizational skills.
Fill the large gap between high-level goals and product details by understanding decision trade-offs.