Idempotency: द्वितीय अनुरोध भिन्न होने पर चुनौतियां
मूल शीर्षक: Idempotency is easy until the second request is different
यह क्यों महत्वपूर्ण है
Distributed systems में proper idempotency implementation financial applications की विश्वसनीयता के लिए महत्वपूर्ण है।
एक ब्लॉग पोस्ट में बताया गया कि API idempotency केवल प्रारंभिक समान अनुरोधों के लिए सरल है, लेकिन जब दूसरा अनुरोध समान key के साथ भिन्न content लेकर आता है तो जटिलताएं उत्पन्न होती हैं।
Dochia CLI Blog के अनुसार, idempotency का बुनियादी सिद्धांत सरल लगता है - Idempotency-Key के साथ अनुरोध भेजना, response को store करना, और retry पर replay करना। लेकिन वास्तविक चुनौती दूसरे अनुरोध से शुरू होती है। जब पहला अनुरोध अभी भी चल रहा हो और दूसरा आ जाए, तो idempotency layer concurrency control का हिस्सा बन जाती है। समस्या तब गंभीर हो जाती है जब समान key के साथ भिन्न content आता है, जैसे 10 EUR के बजाय 100 EUR की payment। ऐसी स्थिति में server को स्पष्ट नीति अपनानी चाहिए। लेखक का सुझाव है कि समान scoped key के साथ भिन्न canonical command को hard error मानना चाहिए ताकि client bugs जल्दी पकड़ में आ जाएं। Idempotency केवल replay cache नहीं है बल्कि operation के intended effect के बारे में है।