टीएल;डीआर

  • समस्या: बड़े पैमाने की वास्तुकला (आर्किटेक्चर) तैयार करने के लिए उपलब्धता, थ्रूपुट और परिचालन जटिलता के बीच संतुलन बनाना आवश्यक है।
  • मुख्य निष्कर्ष: सोशल न्यूज़ फ़ीड की सीधी भाषा में गाइड: लिखने बनाम पढ़ने पर फैन-आउट जैसे हर किसी के मेलबॉक्स भरना बनाम बोर्ड देखना, रैंकिंग, कैश, और सेलिब्रिटी समस्या।
  • परिणाम: उत्पादन वातावरण में विफलता से निपटने और प्रदर्शन लक्ष्यों को हासिल करने की सटीक रूपरेखा।

इंस्टाग्राम, एक्स या फेसबुक खोलते ही खाली पेज और रिसर्च का होमवर्क नहीं मिलता। मिलती है एक सूची: दोस्त, फ़ोटो, चुटकुले, खबरें। यही सूची न्यूज़ फ़ीड है (कभी होम टाइमलाइन भी कहते हैं)।

सिस्टम डिज़ाइन इंटरव्यू में सवाल विशाल लगता है: "फेसबुक फ़ीड डिज़ाइन करें" या "ट्विटर टाइमलाइन डिज़ाइन करें।" रोज़मर्रा की ज़िंदगी से शुरू करें तो विशाल नहीं। फ़ीड जादू से कम, मोहल्ले के बुलेटिन बोर्ड और अख़बार वितरण मार्ग से ज़्यादा मिलता-जुलता है।

यह पोस्ट शून्य से वही डिज़ाइन सिखाता है। पहले से शब्दावली मानकर नहीं चलेंगे। कोई शब्द आएगा तो पहले परिभाषा देंगे।


रोज़मर्रा की तस्वीर

कल्पना करें: गली के कोने पर लकड़ी का बुलेटिन बोर्ड है।

  • पड़ोसी नोट पिन करते हैं: "शनिवार गैरेज सेल," "बिल्ली खो गई," "नई बेकरी।"
  • आप जाते हैं, ज़रूरी पढ़ते हैं, घर लौटते हैं।

अब इसे करोड़ों लोगों तक फैलाएँ। हर किसी का अपना बोर्ड। हर कोई सैकड़ों "पड़ोसियों" को फॉलो करता है। दो कठिन सवाल उठते हैं:

१. नई नोट कब हर किसी के बोर्ड पर रखें? २. मोहल्ला बहुत बड़ा हो तो ऐप खोलना तेज़ कैसे रखें?

इंटरव्यू का असली सार यही दो सवाल हैं, इंजीनियरिंग के कपड़ों में।


उत्पाद को सच में क्या चाहिए

आर्किटेक्चर से पहले उत्पाद पक्का करें। इंटरव्यू में स्पष्ट करने वाले को इनाम मिलता है, पहले काफ़का गढ़ने वाले को नहीं।

ज़रूर चलना चाहिए

१. उपयोगकर्ता पोस्ट प्रकाशित कर सके (टेक्स्ट; फ़ोटो/वीडियो अक्सर कहीं और स्टोर होते हैं, यूआरएल से जुड़ते हैं)। २. उपयोगकर्ता लोगों को फॉलो (या मित्र) कर सके और होम फ़ीड में उनके पोस्ट देख सके। ३. होम फ़ीड हाल की कहानियाँ दिखाए; पहली संस्करण में अक्सर सबसे नया पहले। ४. बाद में विकल्प: लाइक, टिप्पणी, म्यूट, क़रीबी दोस्त, समझदार रैंकिंग।

ज़ोर से सहमत होने लायक उदाहरण संख्याएँ (क़ानून नहीं, उदाहरण)

लक्ष्य उदाहरण लक्ष्य
दैनिक सक्रिय उपयोगकर्ता लगभग १ करोड़
सामान्य व्यक्ति के फॉलो कुछ हज़ार तक
सेलिब्रिटी फॉलो लाखों फॉलोअर
प्रकाशन ट्रैफ़िक शिखर पर प्रति सेकंड हज़ारों पोस्ट
फ़ीड खोलना प्रकाशन से कहीं ज़्यादा; यही व्यस्त रास्ता
फ़ीड का अहसास पहली पृष्ठ कुछ सौ मिलीसेकंड में
ताज़गी सामान्य खातों के लिए सेकंडों में नए पोस्ट

जब तक न पूछा जाए, आमतौर पर दायरे से बाहर: पूरा विज्ञापन नीलाम, लाइव वीडियो, स्टोरीज़, "जिन्हें फॉलो नहीं करते" वाला एक्सप्लोर, एंड-टू-एंड एन्क्रिप्शन। बताएँ कि आप क्या नहीं बना रहे ताकि घंटा फ़ीड जोड़ने पर टिका रहे।

दो प्रवाह सबसे ज़्यादा मायने रखते हैं:

१. प्रकाशन (लेखन मार्ग): कोई पोस्ट करता है; सिस्टम संग्रहित करता है और फॉलोअर के फ़ीड की ओर पहुँचाता है। २. होम फ़ीड (पठन मार्ग): कोई ऐप खोलता है; सिस्टम दिखाने के लिए तैयार कहानियों का पृष्ठ लौटाता है।


फैन-आउट: वह एक विचार जो सब तय करता है

फैन-आउट का अर्थ: "यह एक पोस्ट बहुत लोगों को दिखना चाहिए।"

एक लेखक। कई फॉलोअर। खबर कैसे फैलाएँ?

दो क्लासिक रणनीतियाँ हैं। इन्हें अख़बार और बुलेटिन बोर्ड से याद रखें।

लिखने पर फैन-आउट: हर किसी का मेलबॉक्स पहले से भरना

सुबह पाँच बजे अख़बार बाँटने वाले को सोचें।

जब आप प्रकाशित करते हैं, वर्कर आपके फॉलोअर ढूँढ़ते हैं और हर फॉलोअर के मेलबॉक्स में खबर की प्रति डालते हैं (सॉफ़्टवेयर में: हर फॉलोअर की पहले से बनी फ़ीड सूची में)। फॉलोअर ऐप खोलता है तो फ़ीड पहले से इंतज़ार में होता है। मेलबॉक्स खोलना सस्ता है।

शब्दावली में यह फैन-आउट ऑन राइट है, पुश मॉडल भी कहते हैं।

क्यों अच्छा लगता है

  • होम फ़ीड पढ़ना सरल: "मेरी सूची का अगला पृष्ठ दो।"
  • सामान्य खातों (सैकड़ों या कुछ हज़ार फॉलोअर) के लिए लगभग लाइव जैसा लगता है।

क्यों दर्द देता है

  • लागत फॉलोअर संख्या के साथ बढ़ती है। १ करोड़ फॉलोअर वाले के एक पोस्ट से १ करोड़ मेलबॉक्स अपडेट करने का प्रयास।
  • जो ऐप कभी नहीं खोलते, उनके लिए भी मेल भरता है। बेकार काम।
  • बहुत लोकप्रिय खाते लेखन तूफ़ान बनाते हैं।

पढ़ने पर फैन-आउट: ऐप खोलते ही मोहल्ला जाँचें

अब डिज़ाइन पलटें।

प्रकाशित करते समय आप नोट सिर्फ़ अपने बोर्ड पर पिन करते हैं (एक पोस्ट स्टोर)। फॉलोअर ऐप खोलता है तो सिस्टम उन सबके हालिया नोट इकट्ठा करता है जिन्हें वह फॉलो करता है, और उस विज़िट के लिए अस्थायी सूची मिलाता है।

शब्दावली में यह फैन-आउट ऑन रीड है, पुल मॉडल भी कहते हैं।

क्यों प्रकाशन पर अच्छा लगता है

  • प्रकाशित सस्ता: एक पोस्ट लिखो और रुक जाओ।
  • निष्क्रिय उपयोगकर्ताओं पर बेकार काम नहीं।

क्यों पढ़ने पर दर्द

  • ऐप खोलना भारी काम: कई स्रोत लाने और मिलाने पड़ते हैं।
  • सैकड़ों सक्रिय लोगों को फॉलो करें तो मर्ज लागत और विलंब बढ़ते हैं।
  • "तुरंत लगता है" बजट पाने के लिए सावधानी से कैश चाहिए।

एक वाक्य में तुलना

शैली रोज़मर्रा की छवि कठिन पल
लिखने पर फैन-आउट प्रकाशित करते समय हर मेलबॉक्स भरना सेलिब्रिटी प्रकाशित करे
पढ़ने पर फैन-आउट ऐप खोलते ही हर पड़ोसी का बोर्ड घूमना उपयोगकर्ता बहुत सक्रिय खाते फॉलो करे

अधिकांश असली सिस्टम हाइब्रिड पर उतरते हैं। सेलिब्रिटी समस्या के बाद देखेंगे, क्योंकि हाइब्रिड मुख्यतः उसी के लिए है।


सेलिब्रिटी समस्या (नर्म भाषा में)

सेलिब्रिटी खाता का मतलब यहाँ "प्रसिद्ध व्यक्ति" भर नहीं। इस डिज़ाइन में मतलब है बहुत विशाल फॉलोअर संख्या वाला खाता: पॉप स्टार, खेल टीम, समाचार ब्रांड, वायरल मीम पेज।

फिर अख़बार बाँटने वाले को याद करें।

  • आपकी चचेरी बहन फ़ोटो पोस्ट करती है। ८० फॉलोअर। ८० मेलबॉक्स भरना ठीक।
  • सेलिब्रिटी फ़ोटो पोस्ट करता है। २ करोड़ फॉलोअर। एक फ़ोटो के लिए २ करोड़ मेलबॉक्स भरना ऐसा है जैसे एक बाँटने वाले से कहा जाए कि शहर का अख़बार अभी हर दरवाज़े पर पहुँचा दे, हर बार जब वह व्यक्ति ऑनलाइन छींके।

अगर सेलिब्रिटी के लिए सिर्फ़ लिखने पर फैन-आउट इस्तेमाल करें तो क्या बिगड़ता है?

१. प्रकाशन धीमा लगता है या कतार फट जाती है। लाखों छोटे अपडेट जमा होते हैं। २. कैश मशीनें पिघलती हैं। हॉट की और लेखन प्रवर्धन दर्द एक जगह ठहरते हैं। ३. शांत उपयोगकर्ताओं के मेलबॉक्स भी भरते हैं। उन २ करोड़ में ज़्यादातर इस सेकंड ऑनलाइन नहीं।

इसलिए प्रोडक्शन सिस्टम सेलिब्रिटी को अलग मानते हैं। मेगा-खातों के लिए वे हर मेलबॉक्स पहले से नहीं भरते। सेलिब्रिटी पोस्ट एक बार रखते हैं (या "इस लेखक के पोस्ट" सूची में) और फॉलोअर फ़ीड खोलता है तब पढ़ने पर खींचते हैं

यह मशहूर लोगों के प्रति असभ्यता नहीं। भौतिकी है: एक क्रिया पर लेखन लागत बेरोक नहीं बढ़ सकती।

इंटरव्यूअर को पसंद आने वाली सरल रेखा:

  • फॉलोअर एक सीमा से कम (मान लीजिए १०,०००): फॉलोअर टाइमलाइन में पुश।
  • सीमा से ऊपर: पोस्ट लिखो, लेखक को पुल स्रोत चिह्नित करो, पढ़ते समय मिलाओ।

फैन-आउट लैग और होम फ़ीड विलंब मापकर सीमा बाद में हटा-बढ़ा सकते हैं। सटीक संख्या से विचार ज़्यादा मायने रखता है।


हाइब्रिड: ज़्यादातर टीमें यही भेजती हैं

खाता प्रकार प्रकाशित होने पर फॉलोअर फ़ीड खोलता है तब
सामान्य फॉलोअर की मेलबॉक्स सूचियों में लिखने पर फैन-आउट पहले से बनी सूची पढ़ो
सेलिब्रिटी / मेगा पोस्ट संग्रहित करो; सामूहिक पुश नहीं पहले से बनी सूची के साथ फॉलो की गई सेलिब्रिटी के हालिया पोस्ट मिलाओ

पढ़ने पर मर्ज का रेखाचित्र (अवधारणा):

normal_ids   = मेरी पहले से बनी टाइमलाइन के आख़िरी आइटम
celeb_ids    = हर फॉलो की गई सेलिब्रिटी के हालिया पोस्ट
merged       = दोनों को समय से क्रमबद्ध (नया पहले)
page         = पहले N आइटम लो, "अगला पृष्ठ" के लिए कर्सर याद रखो

यह हाइब्रिड रोज़ के प्रकाशन काम को सीमित रखता है, ऐप खोलना हल्का रखता है, और फिर भी सेलिब्रिटी पोस्ट दिखाता है बिना पूरी धरती भरने के।


कौन किसे फॉलो करता है: ग्राफ

संबंधों की भरोसेमंद सूची चाहिए:

  • मुझे कौन फॉलो करता है? (लिखने पर फैन-आउट के लिए)
  • मैं किसे फॉलो करता हूँ? (पढ़ने पर फैन-आउट / सेलिब्रिटी मर्ज के लिए)
  • किसी को म्यूट या ब्लॉक किया? (लेखन और पठन दोनों फ़िल्टर)

इसे फॉलो ग्राफ या सोशल ग्राफ कहें। अच्छे इंडेक्स वाली रिलेशनल डीबी, ग्राफ डीबी, या वाइड-कॉलम स्टोर में रह सकता है। इंटरव्यू में महत्वपूर्ण:

  • हॉट फॉलोअर और फॉलोई सूचियाँ कैश करें।
  • म्यूट, ब्लॉक और गोपनीयता (जैसे सिर्फ़ क़रीबी दोस्त) फैन-आउट से पहले लागू करें, ताकि वे टाइमलाइन में पोस्ट न लिखें जिन्हें कभी नहीं देखना चाहिए।

ग्राफ को अख़बार वितरण की पता पुस्तिका समझें। गलत पते मतलब गलत मेलबॉक्स।


"मेलबॉक्स" (टाइमलाइन) में क्या रखें

हर फॉलोअर की सूची में पूरा पोस्ट बॉडी कॉपी न करें। एक पॉइंटर कॉपी करें: आमतौर पर पोस्ट आईडी और स्कोर (अक्सर समय)।

क्यों?

  • एक मज़ेदार कैप्शन को ५०,००० टेक्स्ट प्रतियों में रहने की ज़रूरत नहीं।
  • बॉडी एक बार पोस्ट स्टोर (और पोस्ट कैश) में रहती है। टाइमलाइन सिर्फ़ आईडी रखती है।

पुश टाइमलाइन का रेडिस-जैसा मानसिक मॉडल:

उपयोगकर्ता U की टाइमलाइन = post_ids की क्रमबद्ध सूची (नया ऊपर के पास)
सिर्फ़ आख़िरी कुछ सौ या हज़ार आईडी रखें
पुराना इतिहास टिकाऊ स्टोर पर जा सकता है या ज़रूरत पर फिर बन सकता है

टाइमलाइन व्युत्पन्न दृश्य है, जैसे व्यक्तिगत विषय-सूची। पोस्ट तालिका सामग्री की स्रोत सत्य है।


साधारण भाषा में कैश

कैश तेज़ शेल्फ़ है जहाँ वे जवाब रखते हैं जिन्हें जल्द फिर चाहिए। डिस्क और भारी जॉइन पीछे का गोदाम हैं। फ़ीड रास्ता शेल्फ़ चाहता है।

फ़ीड के लिए उपयोगी शेल्फ़:

शेल्फ़ क्या रहता है क्यों
टाइमलाइन कैश प्रति उपयोगकर्ता क्रमबद्ध पोस्ट आईडी होम खोलने पर शुरू से न बनाना पड़े
पोस्ट कैश टेक्स्ट, मीडिया लिंक, लेखक आईडी वायरल पोस्ट कई उपयोगकर्ता देखते हैं
उपयोगकर्ता कैश नाम, अवतार एक लेखक कई कार्ड पर आता है
ग्राफ कैश फॉलोअर / फॉलोई / म्यूट फैन-आउट और मर्ज को तेज़ चाहिए
काउंटर लाइक और टिप्पणी गिनती सस्ते नंबर, अक्सर अपडेट

सीडीएन (कंटेंट डिलीवरी नेटवर्क) फ़ोटो-वीडियो के असली बाइट के लिए इन शेल्फ़ों के बाहर बैठता है। फ़ीड एपीआई यूआरएल लौटाए, ऐप सर्वर से मेगाबाइट वीडियो न बहाए।

मेमोरी सुझाव: सिर्फ़-आईडी टाइमलाइन रैम को लगभग उपयोगकर्ता × टाइमलाइन_लंबाई रखती है, उपयोगकर्ता × पोस्ट_बॉडी_आकार नहीं। बॉडी साझा होती है।

इस पोस्ट के बाद गहरा कैश टूलकिट चाहिए तो देखें रेडिस कैशिंग पैटर्न


रैंकिंग: पहले समय-क्रम, बाद में समझदार

रैंकिंग मतलब क्रम चुनना। शुरुआती ईमानदारी से शुरू कर सकते हैं:

संस्करण १: उल्टा समय-क्रम (reverse chronological)

नया पहले। समझाना आसान। स्टोर आसान (स्कोर = समय)। अच्छा इंटरव्यू v१।

संस्करण २: स्कोर वाली रैंकिंग

प्रोडक्शन ऐप अक्सर इन संकेतों से फिर क्रम बदलते हैं:

  • कितना हालिया है?
  • दर्शक और लेखक कितने क़रीब? (अफ़िनिटी)
  • पोस्ट पर एंगेजमेंट मिल रहा है?
  • वह प्रकार जो दर्शक पसंद करता है (फ़ोटो बनाम लिंक)?
  • दंड: पहले देख चुके, म्यूट विषय, स्पैमी पैटर्न

छोटा सूत्र आकार (प्रोडक्शन एमएल नहीं):

score = recency + affinity + engagement - penalties

रैंकिंग आमतौर पर कहाँ चलती है:

  • पूरी तरह प्रकाशित समय पर हर दर्शक के लिए नहीं (हर दर्शक का संदर्भ अभी नहीं पता)।
  • अक्सर पढ़ते समय: हालिया आईडी की उम्मीदवार खिड़की लो, फिर स्कोर करो, हल्की विविधता लगाओ (एक ही व्यक्ति के पाँच पोस्ट लगातार न दिखाओ), एक पृष्ठ लौटाओ।

इंटरव्यू के लिए: पहले समय-क्रम पुनर्प्राप्ति कहें, फिर छोटे उम्मीदवार सेट पर वैकल्पिक री-रैंक। पूरा मशीन लर्निंग रैंकिंग अलग करियर है; नाम लें, डूबें नहीं।


प्रकाशन मार्ग, कदम दर कदम

१. ऑथ और रेट लिमिट जाँचें (एक उपयोगकर्ता नेटवर्क न भर दे)। २. टेक्स्ट और मीडिया आईडी सत्यापित करें। ३. पोस्ट आईडी बनाएँ और पोस्ट टिकाऊ रूप से सहेजें (डेटाबेस)। यही विश्वसनीयता रेखा है। ४. पोस्ट ऑब्जेक्ट पोस्ट कैश में डालें। ५. फैन-आउट काम कतार में डालें (असिंक)। क्लाइंट को सफलता टिकाऊ सेव के बाद दें, हर मेलबॉक्स भरने के बाद नहीं। ६. वर्कर ग्राफ से योग्य फॉलोअर लोड करें (गोपनीयता फ़िल्टर लागू)। ७. सामान्य फॉलोअर के लिए हर टाइमलाइन कैश में पोस्ट आईडी जोड़ें। ८. सेलिब्रिटी लेखकों पर सामूहिक पुश छोड़ें; पुल के लिए "लेखक के पोस्ट" सूची रखें। ९. वैकल्पिक: अलग मार्ग पर नोटिफिकेशन कतार ("आशा ने पोस्ट किया")।

असिंक फैन-आउट क्यों? उपयोगकर्ता मानते हैं "आपका पोस्ट सुरक्षित है, दोस्त एक सेकंड में देखेंगे।" वे ३० सेकंड का स्पिनर नहीं मानते क्योंकि सेलिब्रिटी-पैमाने का ग्राफ अपडेट हो रहा है।

यह असिंक हस्तांतरण उसी सोच परिवार से है जैसे इवेंट-ड्रिवन आर्किटेक्चर


होम फ़ीड मार्ग, कदम दर कदम

१. ऑथ, फिर फ़ीड सेवा। २. timeline:{me} से उम्मीदवार पोस्ट आईडी लोड करें। ३. यदि उपयोगकर्ता सेलिब्रिटी फॉलो करता है, सेलिब्रिटी के हालिया पोस्ट मिलाएँ। ४. कर्सर से पृष्ठांकन (अपारदर्शी टोकन: "इस स्कोर के बाद जारी")। ५. हाइड्रेट करें: पोस्ट बॉडी और लेखक प्रोफ़ाइल बैच में लोड (मल्टी-गेट, प्रति कार्ड एक क्वेरी नहीं)। ६. ज़रूरत हो तो काउंटर जोड़ें। ७. वैकल्पिक रैंकिंग पास। ८. जेसन लौटाएँ। क्लाइंट जेसन के यूआरएल से सीडीएन पर मीडिया लाए।

हाइड्रेशन पर शुरुआती इम्प्लीमेंटेशन चुपचाप मरते हैं: "यह पोस्ट लाओ, फिर वह" लूप N+१ तूफ़ान बनाता है। हमेशा बैच करें।


सरल डेटा मॉडल रेखाचित्र

पोस्ट

फ़ील्ड भूमिका
post_id प्राथमिक कुंजी
author_id किसने लिखा
text आकार सीमा
media_ids मीडिया सेवा / सीडीएन लिंक
visibility public / followers / close friends
created_at समय क्रम और पृष्ठांकन
deleted_at सॉफ़्ट डिलीट

किनारे (फॉलो)

फ़ील्ड भूमिका
follower_id कौन फॉलो करता है
followee_id किसे फॉलो किया जाता है
state active / muted / ब्लॉक जैसी झंडियाँ

अद्वितीय जोड़ा (follower_id, followee_id)। दोनों दिशाओं में इंडेक्स ताकि "A के फॉलोअर" और "B के फॉलोई" बिना पूरी तालिका स्कैन के मिलें।


क्या बिगड़ता है (और शांत सुधार)

समस्या शांत सुधार
सेलिब्रिटी प्रकाशन फैन-आउट पिघलाए हाइब्रिड पुल; अनुरोध थ्रेड में करोड़ों टाइमलाइन पर पुश कभी नहीं
मिटा पोस्ट फिर भी आईडी के रूप में सॉफ़्ट-डिलीट झंडी; हाइड्रेशन हटाए; वैकल्पिक बैकग्राउंड सफ़ाई
अनफॉलो पर पुराने पोस्ट रहें स्क्रॉल आउट तक स्वीकार, या बैकग्राउंड में उस लेखक को टाइमलाइन से हटाएँ
म्यूट / ब्लॉक अनदेखा गंतव्य चयन और पढ़ने दोनों पर फ़िल्टर
वायरल पोस्ट पर कैश भगदड़ पोस्ट ऑब्जेक्ट का सिंगल-फ़्लाइट लोड; प्रकाशित पर कैश गर्म
फैन-आउट लैग कतार गहराई और डिलीवर तक समय देखें; वर्कर बढ़ाएँ
मल्टी-रीजन जटिलता टिकाऊ पोस्ट दोहराएँ; टाइमलाइन अक्सर क्षेत्रीय, सावधानी से फ़ेलओवर

फ़ीड वितरण की संगति आमतौर पर इवेंटुअल होती है: पोस्ट पंक्ति मज़बूत; टाइमलाइन पकड़ती है। दुनिया भर हर फॉलोअर को एक ही मिलीसेकंड का वादा नहीं।


छोटी क्षमता अंतर्दृष्टि (ज़ोर से बोलें)

लगभग १ करोड़ दैनिक सक्रिय उपयोगकर्ताओं के साथ:

  • लोग ऐप अक्सर खोलें और हर खोलने पर कई कार्ड दिखें तो पठन मार्ग हावी होता है।
  • सैकड़ों सक्रिय लेखकों को फॉलो करने वालों के लिए सिर्फ़ पुल जल्दी महँगा हो जाता है। सामान्य मामले में पुश मदद करता है।
  • सिर्फ़ आईडी होने पर भी टाइमलाइन मेमोरी बड़ी: कई उपयोगकर्ता × सैकड़ों आईडी × प्रति प्रविष्टि बाइट। सूची लंबाई सीमित करें। कैश शार्ड करें।

ये चर्चा संख्याएँ हैं, वित्त योजना नहीं। इंटरव्यूअर के साथ समायोजित करें।


प्रोडक्शन में क्या देखें

  • प्रकाशन सफलता और टिकाऊ लेखन तक समय।
  • फैन-आउट कतार लैग, खासकर फॉलोअर-संख्या आकार के बकेट से।
  • होम फ़ीड विलंब (माध्यिका और धीमी पूंछ) और कैश हिट दर।
  • हाइड्रेशन मिस जो डेटाबेस पर गिरें।
  • शुद्ध-पुश पृष्ठ बनाम हाइब्रिड मर्ज पृष्ठ का हिस्सा।
  • फ़ीड में गायब/मिटे आईडी की दर (कम रहनी चाहिए)।

प्रकाशन को सीमाओं से बचाएँ ताकि एक स्पैमर फैन-आउट बेड़ा न जलाए। देखें रेट लिमिटर डिज़ाइन


दोस्त के लिए संक्षेप

अगर कॉफ़ी पर तीस सेकंड हों:

न्यूज़ फ़ीड हर व्यक्ति की व्यक्तिगत कहानियों की सूची है, उन लोगों से जिन्हें वह फॉलो करता है। कठिन चुनाव यह है कि सूची कब बनाएँ।

लिखने पर फैन-आउट मतलब कोई पोस्ट करे तो हर फॉलोअर का मेलबॉक्स पहले से भरना। ऐप खोलना आसान; सेलिब्रिटी पोस्ट डाकघर फोड़ सकते हैं।

पढ़ने पर फैन-आउट मतलब पोस्ट एक बार रखना, ऐप खोलते समय जिनको फॉलो करते हो उनसे इकट्ठा करना। प्रकाशित आसान; बहुत सक्रिय फॉलो सूचियाँ खोलना धीमा करती हैं।

हाइब्रिड सामान्य खातों पर पुश और सेलिब्रिटी पर पुल, ताकि कोई रास्ता न पिघले।

कैश गर्म टाइमलाइन, पोस्ट, प्रोफ़ाइल तेज़ शेल्फ़ पर रखता है। रैंकिंग नया-पहले से शुरू हो सकती है, बाद में छोटे उम्मीदवार सेट पर फिर स्कोर। टाइमलाइन आईडी रखती है, हर कैप्शन की पूरी प्रति नहीं। प्रकाशन तब सफल हो जब पोस्ट सुरक्षित हो, जबकि मेलबॉक्स भरना पृष्ठभूमि में चलता रहे।

बिना बज़वर्ड कोहरे के पूरा डिज़ाइन यही है।


इंटरव्यू समापन

मज़बूत उत्तर में:

१. स्पष्ट उत्पाद दायरा। २. दो प्रवाह: प्रकाशन और होम। ३. साफ़ पुश बनाम पुल बनाम हाइब्रिड चुनाव, सेलिब्रिटी समस्या नर्म नाम से। ४. फॉलो ग्राफ। ५. सिर्फ़-आईडी टाइमलाइन, मल्टी-गेट हाइड्रेशन, कैश नक्शा। ६. पहले समय-क्रम रैंकिंग, स्कोर रैंकिंग विस्तार के रूप में।

समय बचे तो: वेब टियर क्षैतिज स्केल, पोस्ट शार्डिंग, मल्टी-रीजन रीड रेप्लिका, और क्यों फ़ीड व्युत्पन्न इंडेक्स है, न कि "मेरे दोस्तों ने कभी जो लिखा" का विशाल एसक्यूएल जॉइन।

इस ब्लॉग पर संबंधित: रेडिस कैशिंग पैटर्न, इवेंट-ड्रिवन आर्किटेक्चर, रेट लिमिटर डिज़ाइन