מילון מושגים
Idempotency
נקרא גם: Idempotent · אידמפוטנטיות · אידמפוטנטי · אידמפוטנציה · Idempotency Key · מפתח אידמפוטנטיות · חיוב כפול · למה הלקוח חויב פעמיים · ניסיון חוזר בלי כפילות · ביצוע פעולה פעמיים
הסבר פורמלי#
פעולה היא אידמפוטנטית כשההשפעה המיועדת של בקשה אחת זהה להשפעה של כמה בקשות זהות. לפי MDN, ב-HTTP שיטות כמו GET, PUT ו-DELETE הן אידמפוטנטיות, ואילו POST ו-PATCH אינן מובטחות כאלה. התכונה מתייחסת להשפעה המיועדת בלבד: התשובות יכולות להיות שונות, למשל DELETE שני יכול להחזיר 404. כדי להפוך פעולה כמו יצירת תשלום לבטוחה לניסיון חוזר, שירותים נעזרים ב-Idempotency Key שהלקוח מייצר.
הסבר בגובה העיניים#
לחצתם על "שלם", החיבור נקטע ואתם לא יודעים אם התשלום עבר. אם תלחצו שוב, אתם עלולים לשלם פעמיים. כשהמערכת אידמפוטנטית, כל ניסיון נושא מזהה ייחודי, והשרת מזהה שזו אותה בקשה ומחזיר את אותה תוצאה במקום לחייב שוב. לדוגמה, Stripe מתעדת מנגנון כזה: הלקוח שולח מפתח ייחודי, ובניסיון חוזר עם אותו מפתח מוחזרת התשובה שנשמרה.
למה זה חשוב בפועל#
כשאתם בונים אוטומציה או חיבור בין מערכות שמנסות שוב אחרי כשל (ראו Timeout, Retry, Backoff), ודאו שפעולות שיוצרות חיובים, הזמנות או הודעות לא יוכפלו.
תגיות#
- idempotency
- retries
- api design
- payments