Idempotent means: applying the operation extra times does not change the result beyond the first successful application. PUT a resource with the same body. DELETE something already gone. Charge this payment intent, but not twice.
It does not mean “safe”. It does not mean “fast”. It does not mean “exactly once”.
Retries without idempotency are how you double-provision, double-email, or double-charge. Message brokers redeliver. Users double-click. Your job runner crashes after the HTTP call and before the ack.
I care about this more after working on systems where the side effect is a number, a profile, or money. Longer notes: RabbitMQ, redelivery.