कभी एक्सपायर न होने वाली API कुंजियों की समस्या
कई साल पहले जारी की गई कुंजी, जिसे कभी रोटेट नहीं किया गया और जो आज भी मान्य है, कोई सुविधा नहीं है। यह एक जोखिम है जिसे सालों से किसी ने वास्तव में देखा तक नहीं।
बैच एंडपॉइंट को थोक छूट का मौक़ा मानना लुभावना लगता है, वही प्रवृत्ति जिसकी वजह से किसी चीज़ का बड़ा पैक ख़रीदना अलग-अलग टुकड़े ख़रीदने की तुलना में प्रति यूनिट सस्ता लगता है। यह प्रवृत्ति API अनुरोधों पर उस तरह लागू नहीं होती जैसे भौतिक सामान पर होती है। एक हज़ार पता लुकअप के बैच में वही एक हज़ार अलग-अलग लुकअप करने पड़ते हैं, चाहे वे एक कनेक्शन में आएँ या एक हज़ार अलग कनेक्शन में। उनके एक साथ आने में कोई बचत छिपी नहीं है, क्योंकि महँगा हिस्सा, यानी हर लुकअप को हल करना, दोनों तरह से एक जैसा है।
हम बैच और बल्क अनुरोधों की क़ीमत, प्रति आइटम, बिल्कुल एकल अनुरोधों जितनी रखते हैं। एक हज़ार आइटम वाली बैच कॉल आपकी मुफ़्त सीमा या प्रीपेड क्रेडिट में एक हज़ार अनुरोधों के रूप में गिनी जाती है, उसी €0.0001 प्रति अनुरोध पर जिस पर एंडपॉइंट को एक हज़ार बार अलग-अलग कॉल करना पड़ता, या Unlimited कुंजी के तहत उसी तरह कवर होती है। कोई अलग, सस्ती बैच दर नहीं है, क्योंकि असल में कोई अलग, कम मात्रा का काम नहीं हो रहा।
कुछ प्रोवाइडर थोक छूट देते हैं, और ग्राहक के लिए इसका आकर्षण साफ़ है: ज़्यादा भेजें, प्रति यूनिट कम चुकाएँ। उस छूट के पीछे के तर्क को सिर्फ़ स्वीकार करने के बजाय उस पर सवाल उठाना चाहिए। अगर किसी लुकअप को सर्व करने की सीमांत लागत वास्तव में लगभग स्थिर है, जैसी कि ज़्यादातर जियोकोडिंग, IP और समय क्षेत्र लुकअप के लिए होती है, तो थोक छूट कोई असली दक्षता लाभ आगे नहीं बढ़ा रही। यह छोटे ग्राहकों से ज़्यादा वसूलकर बड़े ग्राहकों की कम दर की भरपाई करने का मूल्य संबंधी फ़ैसला है, जिसे वॉल्यूम के इनाम के रूप में पेश किया जाता है, जबकि असल में यह एक क्रॉस-सब्सिडी है।
सपाट, आइटम-आधारित मूल्य निर्धारण उस क्रॉस-सब्सिडी से पूरी तरह बचता है। प्रतिदिन सौ अनुरोध भेजने वाला ग्राहक और एक लाख भेजने वाला ग्राहक, दोनों के मुफ़्त सीमा पार करने के बाद, प्रति अनुरोध बिल्कुल एक जैसी दर चुकाते हैं। कोई भी दूसरे के उपयोग की भरपाई नहीं कर रहा। इससे मुफ़्त सीमा भी निष्पक्ष रहती है: बैच कॉल भी उसी 2,500 अनुरोधों वाली दैनिक सीमा को उसी एक-अनुरोध-प्रति-आइटम दर पर खर्च करती है, इसलिए बैचिंग का इस्तेमाल मुफ़्त उपयोग को चुपचाप उतनी ही संख्या की एकल कॉल्स से ज़्यादा खींचने के लिए नहीं किया जा सकता।
हम मानते हैं कि बैचिंग ऐसे कारणों से वास्तव में उपयोगी है जिनका क़ीमत से कोई संबंध नहीं: कम राउंड ट्रिप, कम कनेक्शन ओवरहेड, और लुकअप के एक बड़े, ज्ञात सेट को एक साथ प्रोसेस करने के लिए सरल कोड। ये असली इंजीनियरिंग लाभ हैं और इनके अपने गुणों के लिए बैच एंडपॉइंट का उपयोग करना सार्थक है। बैचिंग को ऐसा तरीक़ा नहीं बनना चाहिए जिससे उतनी ही कुल मात्रा का काम इनवॉइस पर असल से सस्ता दिखे। एक हज़ार लुकअप की लागत उतनी ही है जितनी एक हज़ार लुकअप की होती है, और क़ीमत को यह साफ़ कहना चाहिए, चाहे उन्हें अनुरोधों में किसी भी तरह पैक किया गया हो।