Idempotent Receiver
Identify requests from clients uniquely so you can ignore duplicate requests when client retries
Problem
Clients send requests to servers but might not get a response. It's impossible for clients to know if the response was lost or the server crashed before processing the request. To make sure its request is processed, the client has to resend the request.
If a server had already processed the request and crashed after that, servers will get duplicate requests from the client when it retries.
Solution
Identify a client uniquely by assigning a unique ID to each client.
When the server receives a request, it checks if the request with the given request number from the same client is already processed. If it finds a saved response, it returns the same response to the client, without processing the request again.
for more details go to Chapter 15 of the online ebook at oreilly.com
This pattern is part of Patterns of Distributed Systems
23 November 2023