सेवा के बारे में
अनुवादितअधिकांश इंटीग्रेशन चुपचाप टूट जाते हैं। एक सेवा एक इवेंट फायर करती है, रिसीवर फिर से शुरू हो रहा होता है, कोई फिर से प्रयास नहीं करता, और आप सीखते हैं कि ग्राहक को कभी भी ग्राहक से पुष्टि नहीं मिली। मैं उस परत का निर्माण करता हूं जो इस एक्सचेंज को उबाऊ और पूर्वानुमानित बनाती है: इवेंट्स के लिए एक इनटेक पॉइंट, इसके पीछे एक कतार, सूचनाओं के लिए रूटिंग, और एक डिलीवरी लॉग जो सवाल का जवाब देता है "क्या यह पहुंचा" बिना अनुमान के।
काम इवेंट मैप के साथ शुरू होता है, कोड के साथ नहीं। हम आपके सिस्टम के अंदर वास्तव में क्या होता है, इसके माध्यम से चलते हैं और यह चुनते हैं कि किसे प्रतिक्रिया की आवश्यकता है: एक नया ऑर्डर, एक असफल भुगतान, एक स्थिति परिवर्तन, एक साइन किया हुआ दस्तावेज। प्रत्येक के लिए मैं लिखता हूं कि किसे इसके बारे में जानना है, कितनी जल्दी, और किस चैनल के माध्यम से। भविष्य की आधी शोर इस चरण में गायब हो जाती है, क्योंकि अब तक किसी ने नहीं पूछा था कि क्या एक इवेंट ने संदेश कमाया।
फिर यांत्रिकी। बिना सिग्नेचर चेक के एक इनकमिंग वेबहुक स्वीकार नहीं किया जाता है — अन्यथा कोई भी आपको एक इवेंट भेज सकता है, और एक जाली वाला इवेंट एक छूटे हुए से कहीं अधिक महंगा होता है। स्वीकृत इवेंट्स एक कतार में जाते हैं और जब दूर का पक्ष अनुपलब्ध होता है तो बढ़ते अंतराल के साथ पुनः प्रयास किए जाते हैं। यहां पुनरावृत्तियां सामान्य हैं, इसलिए प्रत्येक इवेंट एक कुंजी ले जाता है, और उसी कुंजी की दूसरी प्रति कुछ नहीं बदलती। रहस्य और टोकन कोड के बाहर रखे जाते हैं और कभी भी लॉग तक नहीं पहुंचते। सूचनाएं स्वयं एक लिंक और एक संख्या ले जाती हैं और कुछ नहीं: व्यक्तिगत डेटा और दस्तावेज़ सामग्री को एक कार्यात्मक चैट में नहीं रखा जाता है जिसे आधी कंपनी स्क्रॉल कर सकती है।
काम में शामिल है:
— प्रत्येक के लिए एक कारण के साथ इवेंट का एक मानचित्र;
— सिग्नेचर चेक के साथ वेबहुक इनटेक और किसी भी असाइन किए गए को अस्वीकार करना;
— पुनः प्रयासों के साथ एक कतार और अप्रसंस्कृत इवेंट्स का एक दृश्य बैकलॉग;
— एक ही इवेंट को दो बार संसाधित करने से सुरक्षा;
— प्रत्येक इवेंट और प्रत्येक प्राप्तकर्ता के लिए मेल और टीम मैसेंजर के लिए रूटिंग;
— साधारण भाषा में संदेश टेम्पलेट, बिना कच्चे पेलोड डंप के;
— इवेंट द्वारा खोज योग्य एक डिलीवरी लॉग, मैन्युअल पुनः भेजने के साथ;
— कतार की निगरानी जो तब बोलती है जब बैकलॉग खत्म होना बंद हो जाता है;
— टीम के लिए एक संक्षिप्त लिखित गाइड।
काम इवेंट मैप के साथ शुरू होता है, कोड के साथ नहीं। हम आपके सिस्टम के अंदर वास्तव में क्या होता है, इसके माध्यम से चलते हैं और यह चुनते हैं कि किसे प्रतिक्रिया की आवश्यकता है: एक नया ऑर्डर, एक असफल भुगतान, एक स्थिति परिवर्तन, एक साइन किया हुआ दस्तावेज। प्रत्येक के लिए मैं लिखता हूं कि किसे इसके बारे में जानना है, कितनी जल्दी, और किस चैनल के माध्यम से। भविष्य की आधी शोर इस चरण में गायब हो जाती है, क्योंकि अब तक किसी ने नहीं पूछा था कि क्या एक इवेंट ने संदेश कमाया।
फिर यांत्रिकी। बिना सिग्नेचर चेक के एक इनकमिंग वेबहुक स्वीकार नहीं किया जाता है — अन्यथा कोई भी आपको एक इवेंट भेज सकता है, और एक जाली वाला इवेंट एक छूटे हुए से कहीं अधिक महंगा होता है। स्वीकृत इवेंट्स एक कतार में जाते हैं और जब दूर का पक्ष अनुपलब्ध होता है तो बढ़ते अंतराल के साथ पुनः प्रयास किए जाते हैं। यहां पुनरावृत्तियां सामान्य हैं, इसलिए प्रत्येक इवेंट एक कुंजी ले जाता है, और उसी कुंजी की दूसरी प्रति कुछ नहीं बदलती। रहस्य और टोकन कोड के बाहर रखे जाते हैं और कभी भी लॉग तक नहीं पहुंचते। सूचनाएं स्वयं एक लिंक और एक संख्या ले जाती हैं और कुछ नहीं: व्यक्तिगत डेटा और दस्तावेज़ सामग्री को एक कार्यात्मक चैट में नहीं रखा जाता है जिसे आधी कंपनी स्क्रॉल कर सकती है।
काम में शामिल है:
— प्रत्येक के लिए एक कारण के साथ इवेंट का एक मानचित्र;
— सिग्नेचर चेक के साथ वेबहुक इनटेक और किसी भी असाइन किए गए को अस्वीकार करना;
— पुनः प्रयासों के साथ एक कतार और अप्रसंस्कृत इवेंट्स का एक दृश्य बैकलॉग;
— एक ही इवेंट को दो बार संसाधित करने से सुरक्षा;
— प्रत्येक इवेंट और प्रत्येक प्राप्तकर्ता के लिए मेल और टीम मैसेंजर के लिए रूटिंग;
— साधारण भाषा में संदेश टेम्पलेट, बिना कच्चे पेलोड डंप के;
— इवेंट द्वारा खोज योग्य एक डिलीवरी लॉग, मैन्युअल पुनः भेजने के साथ;
— कतार की निगरानी जो तब बोलती है जब बैकलॉग खत्म होना बंद हो जाता है;
— टीम के लिए एक संक्षिप्त लिखित गाइड।