Solutions to the Retransmission Problem
1. Use TCP or some other transport protocol that produces reliable, in-order delivery.
higher overhead, overkill
2. Implement an execute-at-most once RPC transport.
sequence numbers and timestamps
3. Keep a retransmission cache on the server.
Remember the most recent request IDs and their results, and just resend the result....does this violate statelessness?
4. Hope for the best and smooth over non-idempotent requests.
Map ENOENT and EEXIST to ESUCCESS.