बैकएंड डेवलपर इंटरव्यू सवाल

आप एक business to business प्रोडक्ट बना रहे हैं। एक कस्टमर के डेटा को दूसरे से आप कैसे अलग रखेंगे?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

तीन विकल्प हैं: tenant id column वाला shared schema, हर tenant का अपना schema, और हर tenant का अपना डेटाबेस, जिनमें ऑपरेशनल सादगी और isolation का लेन देन होता है। shared schema सबसे अच्छा scale करता है और सबसे सस्ता है, पर इसमें tenant filter को संरचना से लागू करना पड़ता है, जैसे row level security से या ऐसी data layer से जो उसे हमेशा लगाए। हर tenant का अपना डेटाबेस सबसे मज़बूत isolation और सबसे आसान per customer restore देता है, पर उसकी ऑपरेशनल कीमत असली होती है।

इंटरव्यूअर यह क्यों पूछते हैं

यह ऐसा आर्किटेक्चर सवाल है जिसके व्यावसायिक नतीजे साफ हैं: यह onboarding की लागत, noisy neighbors, compliance के वादे और किसी एक कस्टमर का डेटा वापस लाने के तरीके, सब पर असर डालता है। इंटरव्यूअर ट्रेडऑफ की चर्चा चाहते हैं, कोई पसंदीदा जवाब नहीं। row level security, हज़ारों schemas पर migration की मेहनत, और per tenant backup तथा export का ज़िक्र उन्हें बताता है कि आपने पहली डिज़ाइन मीटिंग से आगे सोचा है।

अपना जवाब कैसे स्ट्रक्चर करें

  • तीनों मॉडल को isolation और लागत की धुरी पर रखें।
  • अपना डिफ़ॉल्ट बताएं और वे शर्तें जो उसे बदल देंगी।
  • समझाएं कि सीमा आप परंपरा से नहीं, संरचना से कैसे लागू करते हैं।
  • ऑपरेशंस पर बात करें: migrations, backups, per tenant restore और noisy neighbors।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

मेरा डिफ़ॉल्ट हर टेबल पर tenant id वाला shared schema है, क्योंकि इसे चलाना सबसे सस्ता है और कस्टमर जोड़ना किसी provisioning job की जगह बस एक insert है। खतरा साफ है, एक छूटा हुआ where clause कस्टमर्स के बीच डेटा लीक कर देता है, इसलिए मैं इसे कभी अनुशासन के भरोसे नहीं छोड़ता। मैं row level security इस्तेमाल करता हूं जिसमें tenant authenticated session से सेट होता है, ताकि हाथ से लिखी query भी tenant के बाहर कुछ न लौटाए, और मैं ऐसे टेस्ट जोड़ता हूं जो जानबूझकर दूसरे tenant की rows पढ़ने की कोशिश करते हैं। मैं हर tenant के अलग schema या डेटाबेस पर तब जाता हूं जब कोई असली वजह हो: कोई कस्टमर जिसकी अनुबंध में data residency की शर्त है, गिने चुने enterprise अकाउंट जो खुद इतने बड़े हैं कि अपना ही लोड बन जाएं, या ऐसा compliance नियम जो साबित की जा सकने वाली अलगाव चाहता है। जिन लागतों को लोग कम आंकते हैं वे यही हैं: अब migration हर schema पर चलती है, connection pooling मुश्किल हो जाती है, और provisioning तथा per tenant restore के लिए ऑटोमेशन चाहिए। मुझे noisy neighbors अलग से भी हल करने पड़े हैं, per tenant rate limits से, क्योंकि डेटा का अलग होना क्षमता का अलग होना नहीं है।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • shared schema में किसी एक कस्टमर का डेटा backup से आप कैसे वापस लाएंगे?
  • हज़ारों tenants पर schema migration आप सुरक्षित तरीके से कैसे चलाएंगे?
  • एक बड़ा tenant बाकी सबका अनुभव खराब न कर दे, यह आप कैसे रोकेंगे?

बैकएंड डेवलपर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं