भुगतान दोबारा करना क्यों खतरनाक है — और वह एक पंक्ति जो इसे ठीक करती है।
चेकआउट के बीच ग्राहक का कनेक्शन टूट जाता है, इसलिए उनका ऐप चुपचाप चार्ज दोबारा करता है —तीन बार। आपका सरल कोड तीन बार चलता है। ग्राहक से 3× एक ऑर्डर के लिए शुल्क लिया जाता है, और अब यह आपकी रात 3 बजे की समस्या है। इसी बग ने वास्तविक कंपनियों को वास्तविक पैसा खर्च कराया है। आइए इसे असंभव बनाएं।
आइडेम्पोटेंसी: एक ही अनुरोध, एक ही प्रभाव — चाहे कितनी भी बार हो।
एक ऑपरेशन है idempotent जब इसे एक बार करना और दस बार करना आपको एक ही स्थान पर ले जाता है। तरकीब: प्रत्येक अनुरोध को एक अद्वितीय कुंजी, remember the keys you've handled, and make a repeat key a no-op. Retries become safe.
यह रहा टूटा हुआ charge(). इसे चलाएं — यह तीन बार शुल्क लेता है। फिर गार्ड जोड़ें ताकि दोहराई गई कुंजी कुछ न करे, और फिर से चलाएं। असली Python, यहीं चल रहा है।
हरा मतलब 3 पुनः प्रयास → 1 शुल्क. आपने आइडेम्पोटेंसी के बारे में नहीं पढ़ा — आपने इसे लागू किया, और एक जांच ने इसकी पुष्टि की। यह हर Sage पाठ है: एक मानसिक मॉडल, एक आरेख, और एक प्रमाण जिसे संशयवादी चला सकता है। कोई स्व-मूल्यांकित प्रश्नोत्तरी नहीं, कोई “मुझे लगता है मैं समझ गया” नहीं।
वह एक पाठ था। वहाँ हैं सैकड़ों अधिक।
प्रत्येक ऐसे प्रमाण के साथ समाप्त होता है और एक पोर्टफोलियो में जमा होता है जिसे एक नियुक्ति प्रबंधक चला सकता है।