Idempotency ნიშნავს, რომ ოპერაციის მრავალჯერ შესრულებას იგივე ეფექტი აქვს, რაც ერთხელ შესრულებას. ის მნიშვნელოვანია, რადგან ქსელები არასაიმედოა: როცა client აგზავნის request-ს და response ვერასდროს მოდის, მას არ შეუძლია იმის გარჩევა, დაამუშავა თუ არა server ის. თუ ის იმეორებს, არა-idempotent ოპერაცია შეიძლება ორჯერ გაეშვას.
პრობლემა
Client ──POST /payments {$100}──▶ Server (charges $100 ✓)
Client ◀────────X (timeout)────── Server (response lost)
Client ──POST /payments {$100}──▶ Server (charges $100 AGAIN ✗ → $200!)
, და ბუნებრივად idempotent-ია, ამიტომ მათი გამეორება უსაფრთხოა. — სწორედ აქედან მოდის დუბლირებული ჩამოჭრები და დუბლირებული order-ები.
