GH GambleHub

प्रदाता अनुकूलक

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

मुख्य उद्देश्य:

1. Decoupling: कोई "कच्चा" बाहरी पेलोड कोर हिट नहीं करता है।

2. विश्वसनीयता: विफलताओं का प्रबंधन (टाइमआउट, रेट्रीज, डीएलक्यू, सर्किट ब्रेकर)।

3. स्थिरता: पहचान, महत्वपूर्ण क्रम, लेन-देन संदेश।

4. ऑपरेशन: मैट्रिक्स, ट्रेसिंग, सीमा, स्थानांतरण अलगाव और निवास।

1) जिम्मेदारी का अनुकूलक क्षेत्

अनुबंध: बाहरी योजनाओं/समापन बिंदुओं का विवरण; मैपिंग → आंतरिक आदेशों/घटनाओं।

परिवहन: REST/gRPC/WebSocket/SQS/Kafka/SFTP; कनेक्शन पूल, बैकप्रेशर।

सुरक्षा: mTLS, OAuth2, HMAC, कुंजी/प्रमाणपत्र प्रति किरायेदार/क्षेत्र, रहस्यों का रोटेशन।

विश्वसनीयता: टाइमआउट, जिटर के साथ रिट्रेज़, सर्किट ब्रेकर, डीडुप्लिकेशन।

पहचान: 'Idempotency-Key '/' requess _ id', प्रतिक्रियाओं/स्थितियों का भंडारण.

अवलोकन: एसएलओ मैट्रिक्स, संरचनात्मक लॉग, ट्रेसिंग।

संस्करण: योजनाओं/समापन बिंदुओं के कई संस्करणों के लिए समर्थन।

संचालन: ficheflags, कैनरी रिलीज़, सैंडबॉक्स, प्रमाणन।

2) जहां लागू (उदाहरण संदर्भ)

गेम/आरजीएस: स्टार्ट/क्लोज राउंड, दांव/जीत, सत्र टोकन, प्रदाता स्टेटस।

भुगतान/PSP: जमा/निकासी, वेबहूक स्टेटस, चार्जबैक, 3-डी सिक्योर।

केवाईसी/एएमएल: सत्यापन, अनुमोदन/पीओपी जांच, लेनदेन निगरानी।

जोखिम/धोखाधड़ी: स्कोरिंग, ट्रिगर, सिफारिशों को अवरुद्ध करना।

Comms: ई-मेल/एसएमएस/पुश, मेलिंग सीमा, टेम्पलेट।

प्रत्येक प्रकार की अपनी घटना राज्य मशीन और एसएलए होती है - एडाप्टर इसे सामान्य करने के लिए बाध्य होता है।

3) अनुबंध और मानचित्रण (आंतरिक ↔ बाहरी)

सिद्धांत:
  • हम एडाप्टर के अंदर प्रकाशित भाषा दर्ज करते हैं और प्रदाता के क्षेत्रों को कभी बाहर नहीं खींचते हैं
  • सभी संदेश 'किरायेदार _ id', 'क्षेत्र', 'प्रदाता _ id', 'ऑपरेशन _ id', 'संस्करण _ ts' ले जाते हैं.
  • हम मैपर्स के माध्यम से बाहरी योजनाओं के कई संस्करणों का समर्थन करते हैं
yaml mapping:
provider: "AcmeRGS"
version: "v3"
inbound:
SpinResultV3 -> Round. Resulted
BonusWinV3  -> Bonus. Wagered outbound:
StartRound  -> POST /v3/sessions/{id}/start
Stake    -> POST /v3/spins compat:
accepts: ["v2","v3"]
emits:  ["v3"]

4) आइडेम्पोटेंस और ऑर्डर

अनुरोध de-dup: 'Idempotency-Key: ' निवेदन में; टीटीएल के साथ कहानी '(op_id → अंतिम स्थिति/प्रतिक्रिया)'।

वेबहुक डे-डुप: पीके के रूप में टेबल 'इनबॉक्स (प्रदाता, event_id)'।

कुंजी द्वारा क्रमबद्ध करें: 'एग्रीगेट _ आईडी' (उदाहरण के लिए, 'गोल _ आईडी' या 'psp _ tx _ id') द्वारा कॉल और प्रसंस्करण।

आउटबॉक्स/इनबॉक्सिंग: पाइपलाइन के दोनों किनारों पर लेन-देन संदेश।

5) विश्वसनीयता: टाइमआउट, रिट्रीट, सर्किट ब्रेकर

टाइमआउट: शॉर्ट क्लाइंट-साइड (p95-ओरिएंटेड), कनेक्ट/रीड के लिए अलग।

रिट्रेज़: रेट्रेबल केवल (5xx/timeout/429), घातीय बैकऑफ़ + फुल जिटर, प्रयास सीमा और कुल समय सीमा।

सर्किट ब्रेकर: त्रुटियों/विलंबता बढ़ ने पर खुला; सुंदर गिरावट (उदाहरण के लिए, अक्षम माध्यमिक आरजीएस सुविधाएँ, सेट "परिणाम के लिए प्रतीक्षा करें")।

DLQ: अमीर मेटा-सूचना, सुरक्षित रेड्रेव के साथ "जहरीला" संदेश।

yaml reliability:
timeout_ms:
connect: 1000 read:  1500 retry:
max_attempts: 6 initial_backoff_ms: 200 max_backoff_ms: 8000 jitter: full retry_on: [TIMEOUT, 5xx, 429]
circuit_breaker:
failure_rate_threshold: 20%   # за окно slow_call_threshold_ms: 1500 half_open_max_calls: 10

6) दर सीमा, कोटा, प्रतिस्पर्धा

प्रदाता प्रतिबंध (आरपीएस, फट, संगति) का निरीक्षण करें।

प्रति-किरायेदार WFQ/DRR (निष्पक्षता) को लागू करें ताकि "शोर" ग्राहक बजट को न खाए।

'रेट्री-आफ्टर '/' एक्स-रेटलिमिट-' हेडर का सम्मान करें।

उत्पाद पर आंतरिक कतारें + बैकप्रेशर।

7) सुरक्षा और अनुपालन

परिवहन: mTLS, TLS 1। 2 +, वर्तमान सिफर सुइट्स, यदि संभव हो तो पिनिंग प्रमाणपत्र।

प्रमाणीकरण: OAuth2 क्लाइंट-क्रेडेंशियल्स/एमटीएलएस, एचएमएसी (हस्ताक्षरित बॉडी हैश + टाइमस्टैम्प), एपीआई कुंजियाँ।

पीआईआई कम से कम: केवल आवश्यक क्षेत्र; लॉग और डीएलक्यू में मास्किंग/संपादन।

रहस्य: KMS/HashiCorp वॉल्ट, स्वचालित रोटेशन, प्रति किरायेदार/क्षेत्र अलगाव।

अनुपालन: पीएसपी के लिए पीसीआई डीएसएस, पैन, जीडीपीआर/स्थानीय डेटा कानूनों के बजाय टोकन भंडारण।

8) बहु-किरायेदार और बहु-क्षेत्र

किरायेदार/क्षेत्र में कुंजियों/समापन बिंदुओं का विन्यास।

डेटा रेजिडेंसी: कॉल "होम" क्षेत्र से किए जाते हैं; क्रॉस-क्षेत्र - केवल एकत्र करता है।

अलगाव: खुद के कनेक्शन पूल और प्रति किरायेदार सीमा।

yaml tenants:
T1:
region: eu-central provider_keys:
acme_rgs: { client_id: "...", cert_ref: "vault://..." }
psp_foo: { hmac_key_ref: "kms://..." }
endpoints:
acme_rgs: "https://eu. api. acme-rgs. com"
psp_foo: "https://eu. api. psp-foo. com"
T2:
region: sa-east
...

9) अवलोकन: मैट्रिक्स, लॉग, ट्रेसिंग

मेट्रिक्स:
  • कक्षा द्वारा सफलता/त्रुटियाँ (2xx/4xx/5xx/timeout/429)।
  • p50/p95/p99 विधि द्वारा विलंबता।
  • दर-सीमा सक्रियण, उद्घाटन/समापन ब्रेकर, डीएलक्यू-दर, पुनर्विकास-सफलता।
  • संरचनात्मक लॉग: 'किरायेदार _ id', 'प्रदाता _ id', 'ऑपरेशन _ id', 'समापन बिंदु', 'स्थिति', 'प्रयास', 'बैकऑफ _ ms'।
  • ट्रेसिंग: सिंगल 'ट्रेस _ आईडी', स्पैन्स "क्रमबद्ध search search mapan प्रकाशित करें प्रकाशित करें", टैग 'स्कीमा _ संस्करण', 'क्षेत्र'।

10) Versioning और phicheflags

समानांतर में बाहरी अनुबंध का समर्थन v1/v2; प्रवास - कैनरी/किरायेदारों द्वारा।

झंडे के पीछे कोई भी नया प्रदाता सुविधा है; बिना रिलीज के स्विच करना।

एवोल्यूशन कॉन्ट्रैक्ट: योजनाओं का एडिटिव-फर्स्ट, कठोर सत्यापन (JSON स्कीमा/प्रोटो)।

11) प्लेबुक (रनबुक)

1. स्क्वॉल 429/सीमाएं: वैश्विक थ्रॉटलिंग को चालू करें, 'रेट्री-आफ्टर' का सम्मान करें, किरायेदारों के बीच खिड़कियों का पुनर्वितरण करें।

2. टाइमआउट वृद्धि: संगामिति को कम करें, सावधानी से टाइमआउट बढ़ाएं, ओपन ब्रेकर, फीचर क्षरण को सक्षम करें।

3. स्कीमा बेमेल: फ्रीज रिड्राइव, संगत मैपर, बैकफिल/रिप्रोसेस सक्षम करें।

4. वेबहुक फ्लैप: पुल/सामंजस्य मोड पर स्विच करें, इनबॉक्स डेडअप लागू करें।

5. प्रदाता पर हादसा: सैंडबॉक्स/बैकअप डीसी (यदि कोई हो) पर स्विच करें, "आस्थगित" संचालन को सक्रिय करें।

12) परीक्षण

अनुबंध परीक्षण: निश्चित प्रदाता सुधार के खिलाफ उत्पादक/

अराजकता परीक्षण: देरी, बूंदें, आउट-ऑफ-ऑर्डर, डुप्लिकेट, आंशिक प्रतिक्रिया, डिस्कनेक्शन।

प्रदर्शन: फटने वाले स्पाइक्स पर तनाव; माप p95/p99, ब्रेकर व्यवहार।

पहचान: एक ही 'ऑपरेशन _ id' को दोहराना अतिरिक्त प्रभाव नहीं बनाता है.

सैंडबॉक्स E2E: हैप्पी-पाथ/चार्जबैक/विवाद/रद्द/पुनरावृत्ति स्क्रिप्ट।

13) तैनाती पैटर्न

अलग सेवा एडाप्टर: + अलगाव, स्वतंत्र रिलीज; − अतिरिक्त नेटवर्क।

Sidecar/plugin: + कॉल का इलाका; संस्करण प्रबंधित करने के लिए अधिक कठिन.

लाइब्रेरी: + एम्बेड करने में आसान; − उच्च युग्मन और मोटली संस्करण।

सिफारिश: एक स्पष्ट एपीआई और इसके रिलीज चक्र के साथ सेवा एडाप्टर।

14) एडाप्टर एपीआई उदाहरण (छद्म)

http
POST /adapters/psp/authorize
Headers:
X-Tenant: T1
Idempotency-Key: op-uuid
Body:
{ "amount":"10. 00","currency":"EUR","method":"card","card_token":"tok_..." }

→ 202 Accepted
{
"operation_id":"op-uuid",
"status":"PENDING",
"as_of":"2025-10-31T12:00:00Z"
}
प्रदाता वेबहुक → एडाप्टर → कर्नेल:
  • 'प्रदाता _ event _ id' → 'इनबॉक्स' (PK ऑन '(provider,event_id)') के साथ वेबहुक → डोमेन इवेंट '→ ऑथराइज्ड' मैपिंग।

15) विशिष्ट त्रुटियां

एक "कच्चे" बाहरी सर्किट को एक डोमेन में खींचना - तंग कनेक्टिविटी और महंगे पलायन।

पहचान और इनबॉक्स/आउटबॉक्स की कमी → डुप्लिकेट प्रभाव और प्रेत अवस्था।

बिना जिटर/सीमा के रेट्राई → तूफान और दर सीमा पर प्रतिबंध।

निष्पक्षता के बिना एकमात्र वैश्विक पूल - एक किरायेदार "सभी को" डालता है।

PII संशोधन/ → पहचानकर्ताओं के बिना लॉग की जांच घटनाओं और अनुपालन जोखिम की जांच नहीं की जा सकती है।

कोई कैनरी/झंडे नहीं हैं - रिलीज एक ही बार में सभी को तोड़ देती है।

'रेट्री-आफ्टर' और प्रदाता रखरखाव कार्यक्रम की अनदेखी।

16) प्री-सेल चेकलिस्ट

  • बाहरी स्कीमा मैपिंग - आंतरिक भाषा; संस्करण और पिछड़ी संगतता।
  • अनुरोधों/वेबहूकों की पहचान ('ऑपरेशन _ आईडी', 'इनबॉक्स')।
  • टाइमआउट, फुल-जिटर, सर्किट ब्रेकर, डीएलक्यू और सुरक्षित रिड्राइव के साथ पीछे हटना।
  • दर सीमित है - प्रति किरायेदार निष्पक्षता; 'रीट्री-आफ्टर' के लिए सम्मान।
  • mTLS/OAuth/HMAC, गुप्त रोटेशन, PII न्यूनतम, एक्सेस ऑडिट।
  • क्षेत्रीय अलगाव और डेटा निवास; प्रति किरायेदार/क्षेत्र कॉन्फ़िग
  • p95/p99 मेट्रिक्स, क्लास त्रुटि, breaker/429/DLQ-rate; ट्रेसिंग।
  • सैंडबॉक्स और अनुबंध परीक्षण; कैनरी रोलआउट और phicheflags।
  • हादसा प्लेबुक और ऑन-कॉल प्रशिक्षण।
  • प्रलेखन: एसएलए, सीमा, स्कीमा, विकास प्रक्रियाएं।

निष्कर्ष

प्रदाता एडेप्टर आपके डोमेन और बाहरी दुनिया के बीच एक ढाल और अनुवादक हैं। पहचान, त्रुटि नियंत्रण और अवलोकन के साथ एक मजबूत एसीएल एकीकरण को अनुमानित बनाता है, प्रदाता पर परिवर्तन की लागत को कम करता है, और "श्रृंखला विफलताओं" से बचाता है। "डिजाइन एडेप्टर स्वतंत्र, प्रबंधनीय घटकों के रूप में - और आपकी "बाहरी दुनिया" आंतरिक वास्तुकला को तोड़ ना बंद कर देगी।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।