GH GambleHub

Адаптерҳои провайдер

Адаптер провайдер - қабати алоҳидаи интегратсионӣ (қабати зиддикоррупсионӣ, ACL), ки шартномаи таҳвилгари берунаро (провайдери бозӣ, дарвозаи пардохт, KYC/AML, баҳодиҳии хавфҳо, огоҳиномаҳо ва ғайра) ба забони домени дохилӣ ва баръакс тарҷума мекунад. Он доменро аз API-ҳои ноустувор, аномалияҳои шабака, таҳаввулоти схема ва сиёсати амният муҳофизат мекунад.

Ҳадафҳои асосӣ:

1. Декуплинг: Ягон сарбории берунии "хом" ба ядро ​ ​ дучор намешавад.

2. Эътимоднокӣ: идоракунии камбудиҳо (танаффус, такрорӣ, DLQ, вайронкунандаи барқ).

3. Мутобиқат: номутобиқатӣ, тартиби асосӣ, паёмнависии транзаксионӣ.

4. Амалиёт: ченакҳо, пайгирӣ, маҳдудиятҳо, ҷудокунии интиқол ва истиқомат.

1) Минтақаи адаптер масъулият

Шартномаҳо: тавсифи схемаҳои беруна/нуқтаҳои ниҳоӣ; харитасозӣ → фармонҳо/рӯйдодҳои дохилӣ.
Нақлиёт: REST/GRPC/Web-Socket/SQS/Kafka/SFTP; ҳавзи пайвастшавӣ, backpressure.
Амният: mTLS, OAuth2, HMAC, калидҳо/шаҳодатномаҳо барои як иҷорагир/минтақа, гардиши асрори.
Эътимоднокӣ: танаффус, бозсозӣ бо ҷиттер, рахи барқ, такроршавӣ.
Idempotency: 'Idempotency-Key '/' request _ id', нигоҳ доштани посухҳо/статусҳо.
Мушоҳида: ченакҳои SLO, гузоришҳои сохторӣ, пайгирӣ.
Версия: дастгирии версияҳои сершумори схемаҳо/нуқтаҳои ниҳоӣ.
Амалиётҳо: ficheflags, релизҳои канарӣ, қуттиҳои қуттиҳо, сертификатсия.

2) Дар ҷойҳои мувофиқ (заминаҳои намуна)

Бозӣ/RGS: даври оғоз/пӯшида, гарав/бурд, нишонаҳои сессия, ҳолати провайдер.
Пардохтҳо/PSP: пасандозҳо/бозпас гирифтан, ҳолати вебҳукҳо, пардохт, 3-D Secure.
KYC/AML: санҷиш, санксия/санҷиши POP, мониторинги транзаксия.
Хавф/қаллобӣ: баҳодиҳӣ, триггерҳо, бастани тавсияҳо.
Comms: почтаи электронӣ/SMS/push, маҳдудиятҳои почта, қолабҳо.

Ҳар як намуд мошини давлатии воқеаи худро дорад ва SLA - адаптер вазифадор аст онро ба эътидол орад.

3) Шартнома ва харитасозӣ (дохилӣ ↔ беруна)

Принсипҳо:
  • Мо дар дохили адаптер забони нашршударо ворид мекунем ва ҳеҷ гоҳ майдонҳои провайдерро кашида намегирем.
  • Ҳама паёмҳо 'иҷорагир _ ид', 'минтақа', 'провайдер _ ид', 'operation _ id', 'version _ 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) Idempotence ва фармоиш

Дархости de-dup: 'Калиди номутаносиб: <operation_id>' дар дархостҳо; ҳикоя '(op_id → ҳолати ниҳоӣ/вокуниш)' бо TTL.
Webhook de-dup: ҷадвали 'паёмдони (провайдер, event_id)' ҳамчун PK.
Фармоиш аз рӯи калид: зангҳо ва коркарди сериалро тавассути 'agregate _ id' (масалан, 'round _ id' ё 'psp _ tx _ id').
Outbox/Inboxing: паёмнависии транзаксионӣ дар ҳарду канори қубур.

5) Эътимоднокӣ: танаффус, ақибнишинӣ, рахи барқ

Вақтсанҷҳо: тарафи муштарии кӯтоҳ (p95-нигаронидашуда), алоҳида барои пайвастшавӣ/хондан.
Бозёфтҳо: танҳо бознишаста (5xx/timeout/429), бозгашти экспоненсиалӣ + jitter пурра, маҳдудияти кӯшиш ва мӯҳлати умумӣ.
Қатъи гардиш: ҳангоми зиёд шудани хатогиҳо/таъхир; таназзули зебо (масалан, хомӯш кардани хусусиятҳои дуввуми RGS, муқаррар кардани "интизории натиҷа").
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) Меъёри меъёрҳо, квотаҳо, рақобатпазирӣ

Маҳдудиятҳои провайдерро риоя кунед (RPS, таркиш, мувофиқат).
Ба ҳар як иҷорагир WFQ/DRR (адолат) татбиқ кунед, то муштарии "ғавғо" буҷаро нахӯрад.
Ба сарлавҳаҳои 'Retry-After '/' X-Rate' Limit- 'эҳтиром гузоред.
Навбати дохилӣ + пуштибонии маҳсулот.

7) Бехатарӣ ва риояи

Нақлиёт: MTLS, TLS 1. 2 +, люксҳои ҷории рамзӣ, агар имкон бошад, шаҳодатномаҳои пинҳонӣ.
Аутентификатсия: OAuth2 муштарӣ-эътимоднома/MTLS, HMAC (hash бадан имзо + timestamp), калидҳои API.
Кам кардани PII: танҳо майдонҳои зарурӣ; ниқоб/таҳрир дар гузоришҳо ва DLQ.
Асрҳо: KMS/HashI Corp Vault, гардиши автоматӣ, ҷудокунӣ ба иҷорагир/минтақа.
Мувофиқат: PCI DSS барои PSP, нигаҳдории токен ба ҷои PAN, GDPR/қонунҳои маҳаллӣ.

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 таъхир бо усул.
  • Амали меъёри маҳдудият, шикастани кушодан/пӯшидан, сатҳи DLQ, redrive-муваффақият.
  • Гузоришҳои сохторӣ: 'иҷорагир _ ид', 'провайдер _ ид', 'operation _ id', 'endpoint', 'status', 'кӯшиш', 'backoff _ ms'.
  • Пайгирӣ: ягонаи 'trace _ id', spans "serialize → serialize → ирсоли → харита → нашр кардан", барчасбҳо 'schema _ version', 'минтақа'.

10) Версия ва phicheflags

Дастгирии v1/v2 шартномаи беруна мувозӣ; муҳоҷират - канарӣ/аз ҷониби иҷорагирон.
Ҳама гуна хусусияти провайдери нав дар паси парчам аст; гузариш бе озодкунӣ.
Шартномаи эволютсия: иловаи аввал, санҷиши қатъии схемаҳо (JSON Schema/Proto).

11) Китобҳои бозӣ (китобчаҳо)

1. Squall 429/маҳдудиятҳо: фурӯзон кардани глобалии ҷаҳонӣ, эҳтиром 'Retry-After', тақсим кардани тирезаҳо байни иҷорагирон.
2. Афзоиши вақт: мувофиқатро коҳиш диҳед, танаффусро бодиққат зиёд кунед, вайронкунандаи кушода, таназзули хусусиятро фароҳам оваред.
3. Номутобиқатии схема: redrive-ро ях кунед, харитасозии мувофиқ, backfill/коркард.
4. Парпечи Webhook: гузариш ба ҳолати кашидан/оштӣ кардан, дедупи паёмдонро истифода баред.
5. Ҳодиса дар провайдер: гузариш ба қуттии қуттӣ/нусхаи эҳтиётии DC (агар бошад), амалиёти "таъхиршуда" -ро фаъол созед.

12) Санҷиш

Санҷишҳои шартномавӣ: истеҳсолкунанда/истеъмолкунанда бар зидди ислоҳи провайдери собит.
Санҷишҳои бетартибӣ: таъхирҳо, қатраҳо, фармоишҳо, нусхабардорӣ, посухи қисман, пайвастшавӣ.
Иҷро: стресс дар хӯшаҳои дарида; андозагирии p95/p99, рафтори вайронкунанда.
Idempotency: такрори ҳамон 'operation _ id' таъсири иловагӣ эҷод намекунад.
Sandbox E2E: happy-path/chargeback/conversy/бекоркунӣ/recalc скриптҳо.

13) Намунаҳои ҷойгиркунӣ

Адаптери алоҳидаи хизматрасонӣ: + ҷудокунӣ, варақаҳои мустақил; − шабакаи иловагӣ.
Sidecar/plugin: + маҳалли зангҳо; − идора кардани версияҳо мушкилтар аст.
Китобхона: + ҷойгиркунии осон; − версияҳои баланд ва motley.

Тавсия: адаптер хидмат бо API-и равшан ва давраи барориши он.

14) Намунаи адаптер API (Псевдо)

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"
}
Провайдери webhook → адаптер → ядро:
  • Webhook бо 'provider _ event _ id' → 'паёмдони қуттӣ' (PK on '(provider,event_id)') → харитасозӣ → чорабинии домени 'Пардохт ваколатдор'.

15) Хатогиҳои маъмулӣ

Кашидани як схемаи берунии "хом" ба домейн → пайвасти зич ва муҳоҷирати гаронбаҳо.
Набудани idempotency ва паёмдони/outbox → эффектҳои такрорӣ ва ҳолати phantom.
Retrai бе jitter/limits → тӯфон ва манъи маҳдудияти нархҳо.
Ягона ҳавзи ҷаҳонӣ бидуни адолат → як иҷорагир ҳамаро "мегузорад".
Сабтҳо бидуни таҷдиди PII/→ идентификаторҳо наметавонанд ҳодисаҳо ва хатари мутобиқатро тафтиш кунанд.
Ягон канарейка/парчамҳо вуҷуд надоранд → озодкунӣ ҳамаро якбора мешиканад.
Нодида гирифтани 'Retry-After' ва ҷадвалҳои нигоҳдории провайдерҳо.

16) Рӯйхати санҷиши пеш аз фурӯш

  • Харитасозии схемаҳои беруна → забони дохилӣ; версияҳо ва мутобиқати қафо.
  • Шиносоии дархостҳо/webhooks ('operation _ id', 'inbox').
  • Вақтсанҷӣ, бозсозӣ бо пуррагӣ, сими барқ, DLQ ва redrive бехатар.
  • Меъёри адолатро барои як иҷорагир маҳдуд мекунад; эҳтиром ба 'Retry-After'.
  • m: TLS/OA/HMAC, гардиши махфӣ, кам кардани PII, аудити дастрасӣ.
  • Ҷудокунии минтақавӣ ва будубоши маълумот; конфигуратсияҳо барои иҷорагир/минтақа.
  • p95/p99 ченакҳо, хатои синф, breaker/429/DLQ-rate; пайгирӣ.
  • Санҷишҳои қуттиҳо ва шартномаҳо; гардиши канарӣ ва phicheflags.
  • Китобҳои бозӣ дар бораи ҳодисаҳо ва омӯзиши зангҳо.
  • Ҳуҷҷатгузорӣ: SLA, маҳдудиятҳо, схемаҳо, равандҳои эволютсия.

Хулоса

Адаптерҳои провайдер сипар ва тарҷумон байни домени шумо ва ҷаҳони беруна мебошанд. ACL-и қавӣ бо idempotency, назорати хатогӣ ва мушоҳида ҳамгироиро пешгӯишаванда месозад, арзиши тағиротро дар провайдер коҳиш медиҳад ва аз "нокомии занҷир" муҳофизат мекунад. "Адаптерҳои тарроҳӣ ҳамчун ҷузъҳои мустақил, идорашаванда - ва "ҷаҳони беруна" -и шумо шикастани меъмории дохилиро бозмедоранд.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Telegram
@Gamble_GC
Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.