पहले उसे रोकिए: सख्त timeout लगाइए ताकि उनकी latency आपकी न बन जाए, सिर्फ idempotent calls पर exponential backoff और jitter के साथ retry कीजिए, और आगे circuit breaker लगाइए ताकि जो चीज पहले ही गिरी हुई है उसे आप पीटते न रहें। फिर तय कीजिए कि घटा हुआ व्यवहार कैसा दिखेगा: काम को बाद के लिए कतार में डालिए, cache की गई वैल्यू दीजिए, या उस एक फीचर को फेल होने दीजिए जबकि बाकी प्रोडक्ट चलता रहे।
इंटरव्यूअर यह क्यों पूछते हैं
हर असली सिस्टम किसी ऐसी चीज पर टिका है जो उसके काबू में नहीं, और इंटरव्यूअर जानना चाहता है कि आप उस provider के बुरे दिन के लिए डिजाइन करते हैं। वे timeouts सुनना चाहते हैं, जो सबसे ज्यादा भुलाया जाने वाला काबू है, idempotency से जुड़ा retry का अनुशासन, circuit breaking ताकि आप आउटेज और बड़ा न कर दें, और यूजर तक 500 पहुंचाने के बजाय शालीनता से घटती सेवा की प्रोडक्ट वाली सोच।
अपना जवाब कैसे स्ट्रक्चर करें
- timeout लगाइए ताकि उनकी समस्या उनकी ही रहे।
- सिर्फ वही दोहराइए जो सुरक्षित है, backoff और jitter के साथ।
- और बोझ न डालने के लिए circuit breaker जोड़िए।
- यूजर के लिए घटा हुआ अनुभव तय कीजिए।
उदाहरण जवाब
सबसे पहले मैं यह देखता हूं कि हमारे पास timeout है भी या नहीं, क्योंकि बहुत सारे HTTP clients में डिफॉल्ट असल में हमेशा के लिए होता है, और इसी तरह एक धीमा provider आपका worker pool भर देता है और उन endpoints को भी गिरा देता है जिनका उससे कोई लेना देना नहीं। तो सख्त timeout, अपने ही SLA से कसा हुआ। फिर retries, लेकिन सिर्फ उन calls पर जिन्हें दोहराना सुरक्षित है, exponential backoff और jitter के साथ, क्योंकि हर इंस्टेंस से एक साथ आई retries उनके हल्के गिरावट को पूरे आउटेज में बदल देती हैं। आगे circuit breaker लगता है, ताकि लगातार कुछ failures के बाद हम कुछ देर कॉल करना बंद कर दें और कतार लगाने के बजाय तुरंत फेल हो जाएं। फिर प्रोडक्ट वाला सवाल, जो सबसे दिलचस्प है: यूजर को क्या दिखना चाहिए? address validation कॉल के लिए मैं ऑर्डर जाने दूंगा और उसे रिव्यू के लिए निशान लगा दूंगा। payment authorization में मैं नकल नहीं कर सकता, तो मैं कोशिश को कतार में डालूंगा और यूजर को ईमानदारी से बता दूंगा। और इस पूरे वक्त मैं request ids लेकर उनके सपोर्ट चैनल पर लगा रहूंगा।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- timeout की वैल्यू आप कैसे तय करते हैं?
- आप कैसे टेस्ट करेंगे कि आपका circuit breaker सच में काम करता है?
- कस्टमर से पहले इसे पकड़ने के लिए आप किस चीज पर नजर रखेंगे?
सॉफ्टवेयर इंजीनियर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें