बाध्य संदर्भ और डोमेन सीमाएँ
बाउंडेड कॉन्फ्रेंस (बीसी) एक स्पष्ट सीमा है जिसके भीतर एक एकल सर्वव्यापी भाषा, सुसंगत मॉडल और अपरिवर्तनीय काम करते हैं। सीमा के अंदर, शब्द स्पष्ट हैं ("बेट", "क्लाइंट", "लिमिट"), और संदर्भ के बाहर अनुबंध (घटनाओं/टीमों) के साथ संवाद करता है और अन्य लोगों के शब्दार्थ "पूंछ के अंदर नहीं खींचता है। "चालाकी से चुनी गई सीमाएं कनेक्टिविटी को कम करती हैं, स्केलिंग को सरल बनाती हैं और उत्पाद विकास में तेजी लाती हैं।
1) हमें सीमाओं की आवश्यकता क्यों है
संज्ञानात्मक भार में कमी। टीम एक मॉडल और एक भाषा के साथ काम करती है, न कि "एक बार में पूरा व्यवसाय।"
आक्रमणकारियों का अलगाव। महत्वपूर्ण नियम (संतुलन ≥ 0, लॉगिन विशिष्टता) एक स्थान पर रहते हैं और समुच्चय द्वारा संरक्षित होते
प्रबंधन बदलें। ईसा पूर्व के भीतर योजना/नियमों का विकास पड़ोसी को नहीं तोड़ ता है - स्पष्ट अनुबंध हैं।
प्रदर्शन और विश्वसनीयता। ईसा पूर्व के भीतर, एक उपयुक्त स्थिरता मॉडल और भंडारण को चुना जा सकता है; बाहर - अतुल्यकालिक अनुमान।
2) बाध्य संदर्भ की पहचान कैसे करें
त्वरित विधि (कार्यशाला 2-4 घंटे):1. इवेंट स्टॉर्मिंग: डोमेन इवेंट्स "क्या हुआ", फिर कमांड लिखें "आप क्या करने के लिए कहते हैं", फिर एग्रीगेट्स "जो नियम की गारंटी देता है।"
2. भाषा समूह: जहां शब्द और नियम लगातार मेल खाते हैं - संभावित ईसा पूर्व। जहां "क्लाइंट" शब्द का अर्थ अलग (भुगतानकर्ता बनाम खिलाड़ी) है - स्पष्ट रूप से अलग-अलग संदर्भ हैं।
3. अपरिवर्तनीय और स्वामित्व: क्या उल्लंघन नहीं किया जा सकता है और कौन जिम्मेदा बीसी के अंदर अपरिवर्तनीय - जो इसकी गारंटी दे सकता है।
4. मूल्य प्रवाह: समूह कदम जो अक्सर एक साथ बदलते हैं - ये एक ईसा पूर्व के लिए उम्मीदवार हैं।
5. ऑर्ग संरचना: यदि एक भाग अलग केपीआई के साथ एक अलग टीम द्वारा बनाया जाता है - यह शायद एक अलग ईसा पूर्व है (लेकिन इसके विपरीत नहीं: संगठनात्मक संरचना को आंख बंद करके मॉडल को निर्धारित नहीं करना चाहिए)।
सीमा संकेत:- शर्तों के बारे में विवाद ("शर्त", "टिकट", "गोल" - विभिन्न अर्थ)।
- सेवाओं के माध्यम से सबसे गर्म अपरिवर्तनीय "प्रवाह"।
- विभिन्न एसएलओ और परिवर्तन की गति।
- परमाणु की खातिर मॉड्यूल के बीच "डुअल-राइट"।
3) विशिष्ट संदर्भ (डोमेन उदाहरण)
पहचान/केवाईसी - पंजीकरण, सत्यापन स्तर, प्रतिबंध स्थितियां।
बटुआ/लेजर - संतुलन, लेनदेन, भंडार, मुद्राएं।
सट्टेबाजी/आदेश - स्वागत, उद्धरण, गणना।
खेल/गोल - गोल जीवन चक्र, परिणाम।
बोनस/प्रोमो - अर्जन, जागीर, रूपांतरण।
भुगतान - जमा/निकासी, भुगतान प्रवेश द्वार स्थिति।
अनुपालन/रिपोर्टिंग - रिपोर्ट, ऑडिट, नियामक शोकेस।
कैटलॉग/प्रदाता एकीकरण - खेल, संस्करण, प्रदाताओं की स्थिति।
एनालिटिक्स/रीड मॉडल - अनुमान और भौतिक दृश्य।
4) संदर्भ मानचित्र: बीसी कैसे बातचीत करते हैं
संदर्भ मानचित्र रिश्ते के प्रकार को कैप्चर करता है:- ग्राहक-आपूर्तिकर्ता। एक ईसा पूर्व (आपूर्तिकर्ता) घटनाओं/डेटा वितरित करता है, दूसरा (ग्राहक) अपने मॉडल को समायोजित करता है।
- अनुरूपतावादी। ग्राहक आपूर्तिकर्ता भाषा और मॉडल को स्वीकार करता है (उदा। नियामक खाता)।
- साझेदारी। दो बीसी तुल्यकालिक रूप से भाषा और अनुबंध (अक्सर एक कमांड/रोडमैप) विकसित करते हैं।
- साझा कर्नेल। सामान्य न्यूनतम उदात्तता/पुस्तकालय, संयुक्त रूप से मौखिक; ध्यान से उपयोग करें।
- भ्रष्टाचार विरोधी परत (एसीएल)। एक सुरक्षात्मक परत जो अन्य लोगों के मॉडल को अपनी भाषा में अनुवाद करती है।
- मेजबान सेवा/प्रकाशित भाषा खोलें। सार्वजनिक प्रोटोकॉल/योजनाएं, लंबवत और प्रलेखित।
अभ्यास: डिफ़ॉल्ट रूप से एसीएल और अतुल्यकालिक घटनाओं का उपयोग करें; अनुरूपतावादी - केवल तभी जब प्रदाता मानक निर्धारित करता है, साझा कर्नेल - न्यूनतम और सचेत रूप से।
5) बाउंड = भाषा + मॉडल + अपरिवर्तनीय + भंडारण
ईसा पूर्व के अंदर, परिभाषित करें:- सर्वव्यापी भाषा। उदाहरणों के साथ शब्दों का शब्दकोश।
- एकत्र और अपरिवर्तनीय। नियम कौन रखता है और क्या संचालन की अनुमति है।
- संगति मॉडल। पैसे के लिए मजबूत/सीपी, स्टोरफ्रंट के लिए ईसी/कारण।
- भंडारण और सूचकांक। इनवेरिएंट और एसएलओ के लिए चयनित।
- अनुबंध से बाहर निकलें। इवेंट/कमांड, स्कीमा संस्करण, डिलीवरी एसएलओ।
बाहर: कोई प्रत्यक्ष SQL/तालिका निर्भरता नहीं। संचार - एक संविदा के माध्यम से।
6) सीमाएं और निरंतरता (PACELC)
इनसाइड ईसा पूर्व: इनवेरिएंट्स (वॉलेट - स्ट्रॉन्ग, बेटिंग - स्वागत में मजबूत) के लिए एक मॉडल चुनें।
ईसा पूर्व के बीच: घटनाओं और अनुमानों के माध्यम से सबसे अधिक बार अंतिम। यदि तुल्यकालिक सत्यापन की आवश्यकता होती है, तो अनुपलब्ध होने पर समय सीमा और विफलता के साथ एक स्पष्ट कमांड ("छिपा हुआ" REST कॉल नहीं)।
7) भ्रष्टाचार विरोधी परत (एसीएल)
एसीएल का कार्य किसी और की भाषा और गंदे डेटा को ईसा पूर्व के अंदर जाने देना नहीं है।
स्कीमा मैपिंग: बाहरी 'स्टेटस = SUTED' → Internative 'LedgerEntry (प्रकार = क्रेडिट, कारण = PsPsettle)'।
सत्यापन और संवर्धन: आक्रमणकारियों का सत्यापन, समय क्षेत्र का सामान्यीकरण, मुद्राएं।
वर्शनिंग: 'schema _ version' external अनुबंध, पिछड़े संगतता के लिए समर्थन।
पहचान: 'बाहरी _ id '/' ऑपरेशन _ id' द्वारा.
अवलोकन: टैग 'स्रोत', 'स्कीमा _ संस्करण', 'मैपिंग _ आईडी', 'जहरीले' संदेशों के लिए डीएलक्यू ट्रेस करें।
8) सीमाएं और डेटा: स्वामित्व, अनुमान, एपीआई
स्वामित्व: "सत्य" का मालिक कौन है? केवल मालिक ही रिकॉर्ड बदलता है। बाकी ईसा पूर्व - रीड-मॉडल और लिंक।
अनुमान: रीडिंग के लिए खंडित तालिकाएं; घटनाओं से अद्यतन हैं।
API: कमांड (मालिक में उत्परिवर्तन) और अनुरोध (पढ़ें अनुमान)। अन्य लोगों के डेटा का कोई "एंड-टू-एंड" अपडेट नहीं।
9) विकास और संस्करण
घटनाओं और एपीआई - 'स्चेमा _ संस्करण' और संगतता नीति (योगात्मक + फॉलबैक) के साथ।
Blue/Green By BC: नया अनुबंध 'v2' 'v1' के समानांतर प्रकाशित होता है, यातायात धीरे-धीरे स्थानांतरित होता है।
प्रवासन: प्रमुख परिवर्तनों के लिए - एक नया प्रक्षेपण/सेवा, रीडिंग का "दो-चरण स्विच"।
10) सीमा परीक्षण
अनुबंध परीक्षण: यह जाँचना कि बीसी प्रकाशित अनुबंध (निर्माता परीक्षण) का अनुपालन करता है और किसी और (उपभोक्ता परीक्षण) को सही ढंग से समझता है।
संपत्ति-आधारित: ईसा पूर्व (संतुलन, सीमा, विशिष्टता) के भीतर समुच्चय के अपरिवर्तनीय।
एकीकरण पर अराजकता: देरी, आउट-ऑफ-ऑर्डर, डुप्लिकेट, स्कीमा-विकास; DLQ की उपस्थिति और सुरक्षित redrave।
एनएफआर परीक्षण: सीमा पर p95/पीक लोड (घटना सर्वर/एसीएल)।
11) सीमा द्वारा अवलोकन और एसएलओ
मेट्रिक्स: इवेंट्स/कमांड्स के थ्रूपुट, 'प्रोजेक्शन _ lag _ ms', 'dlq _ rate', मैपिंग त्रुटियां, p95 API।
ट्रेसिंग: अनिवार्य टैग 'बीसी', 'टेनेंट _ आईडी', 'इवेंट _ आईडी', 'ऑपरेशन _ आईडी', 'स्कीमा _ वर्जन'.
अलर्ट: प्रोजेक्शन लैग से अधिक, बढ़ ती कमांड विफलताएं, स्कीमा "फ्लैप" (कई 'स्कीमा _ मिसमैच')।
12) बहु-किरायेदार और क्षेत्र
'किरायेदार _ id' - सीमा पर सभी घटनाओं और अनुमानों की कुंजी में।
निष्पक्षता: पड़ोसियों के एसएलओ से "शोर" रखने के लिए प्रति किरायेदार प्रकाशन/फिर से सीमा।
रेजीडेंसी: बीसी डेटा एक "घर" क्षेत्र में रहते हैं; क्रॉस-रीजनल - एग्रीगेट/रिपोर्ट।
13) एंटी-पैटर्न (धुंधली सीमा के परिणामस्वरूप)
विशालकाय "कोर-सेवा। "एक जगह सब कुछ - लेनदेन के लिए संघर्ष, लंबी रिलीज, कम स्वायत्तता।
सारणीबद्ध एकीकरण। विदेशी तालिकाओं के लिए लाइनों का चयन करें - योजना के अनुसार नाजुकता और युग्मन।
डुअल-राइट। उसी समय, दो बीसी में लिखना "सुविधा के लिए" - विसंगतियों और आक्रमणकारियों की तोड़ फोड़।
डिफ़ॉल्ट रूप से अनुरूपतावादी। "किसी और के मॉडल को स्वीकार कर लिया क्योंकि यह है" - अन्य लोगों के अर्थों का रिसाव, विकास की असंभवता।
छिपी हुई तुल्यकालिक कॉल। REST एक स्पष्ट अनुबंध और समय सीमा के बिना "कहीं अंदर" कॉल करता है - उपलब्धता पर एक अप्रत्याशित निर्भरता।
14) रूपरेखा का उदाहरण (मौखिक योजना)
[Wallet/Ledger] <--CP, Leader, Transactions-->
publishes: WalletReserved/Committed v
[Betting] <--CP on bid taking-->
events: BetPlaced/Settled v
[Read Models/Analytics] <--EC projection-->
[Payments] --ACL--> [Wallet/Ledger]
[Provider Integration] --ACL--> [Game/Round]
[Compliance] <-events - [KYC/Identity], -> reports [Reporting]
15) सीमा चयन के लिए मिनी-गाइड
1. आक्रमणकारियों को निर्धारित करें और निर्धारित करें कि कौन उन्हें गारंटी दे सकता है।
2. शब्दकोश (10-20 शब्द) का वर्णन करें और सुनिश्चित करें कि टीम को समान समझ है।
3. संदर्भ मानचित्र और संबंध प्रकार आरेखित करें।
4. जोड़ों के भीतर और भीतर स्थिरता मॉडल को हल करें।
5. डिजाइन अनुबंध (घटनाओं/कमांड) और एसीएल।
6. अवलोकन की योजना (मैट्रिक्स/ट्रेसिंग/अलर्ट) और डीएलक्यू/रीड्राइव।
7. एकीकरण के लिए अनुबंध-परीक्षण और अराजकता चलाएं।
8. फिक्स गवर्नेंस: कौन भाषा/योजना का मालिक है, कैसे बदलाव किए जाते हैं।
16) प्री-सेल चेकलिस्ट
- प्रत्येक ईसा पूर्व में एक शब्दावली, समुच्चय और आक्रमणकारी होते हैं।
- संदर्भ मानचित्र पर संबंधों को परिभाषित किया गया है और अनुबंधों को प्रलेखित किया गया है।
- घटनाओं/कमांड और एसीएल के माध्यम से एकीकरण, कोई प्रत्यक्ष एसक्यूएल निर्भरता नहीं।
- कमांड/इवेंट आइडेम्पोटेंसी; आउटबॉक्स/इनबॉक्स और डीएलक्यू हैं।
- संगति मॉडल (इंट्रा/इंटर बीसी) तय और परीक्षण किया गया।
- स्कीमा वर्शनिंग और संगतता रणनीति (v1/v2)।
- लैग/त्रुटि/निष्पादन मेट्रिक्स और अलर्ट कॉन्फ़िगर किए गए हैं।
- बहु-किरायेदारी और डेटा-रेजिडेंसी नीतियां लागू की जाती हैं।
- ऑपरेटिंग प्लेबुक: स्कीमा-बेमेल, पुनर्निर्माण, अनुमानों का पुनर्निर्माण।
17) त्वरित व्यंजनों
धन और सीमा: सीपी और लेनदेन के साथ अलग बीसी, एपीआई केवल आदेश देता है, रीडिंग के लिए सच्चाई के परिणाम के रूप में घटनाएं।
फ़ीड/निर्देशिका: ईसी के साथ ई.पू., अनुमान और कैश, स्पष्ट 'ताजगी'।
बाहरी प्रदाताओं के साथ एकीकरण: हमेशा एसीएल, इवेंट/कमांड, स्कीमा वर्शनिंग के माध्यम से।
टीम की वृद्धि: वन ईसा पूर्व एक टीम है, टीम में "भाषा का मालिक" और "आक्रमणकारियों का रक्षक" है।
मोनोलिथ रीफैक्टरिंग: अनुबंध और एसीएल पहले, फिर भौतिक अलगाव।
निष्कर्ष
बाध्य संदर्भ न केवल एक आरेख है, बल्कि भाषा, नियमों और विकास के तरीके पर एक कार्य समझौता है। स्पष्ट सीमाएं कनेक्टिविटी को कम करती हैं, गति परिवर्तन करती हैं, और सिस्टम को संचालित करने के लिए अनुमानि अर्थ और आक्रमणकारियों द्वारा अलग, एसीएल सीमाओं और अनुबंधों की रक्षा, मेट्रिक्स के साथ सब कुछ मापते हैं - और आपकी वास्तुकला डोमेन और टीम के तेजी से विकास के साथ भी लचीली और विश्वसनीय रहेगी।