• client resends on timeout - execute every copy that arrives at the server
  • client getting a reply = executed at least once
  • if no reply = maybe executed, maybe multiple times

works when

  • no side-effects
  • read-only or idempotent operations
  • stuff that isn’t affected if run multiple times