GH GambleHub

Інтеграційний HUB і API-зв'язку

1) Роль і зона відповідальності HUB

Інтеграційний HUB (далі - HUB) - це прошарок між ядром платформи і зовнішнім світом (провайдери ігор, PSP, KYC/AML, CRM, ризик-скоринг, антифрод, BI/аналітика, повідомлення). Його завдання:
  • уніфікувати протоколи і формати;
  • забезпечити надійність (ретраї, черги, полісі таймаутів, circuit breaker);
  • гарантувати безпеку (mTLS, OAuth2, JWT, HMAC, IP-allowlist);
  • централізувати спостережуваність (логи, метрики, трасування);
  • спростити зміну провайдера (адаптери + маппінг полів);
  • давати стабільні контракти для команд продукту.

2) Принципи дизайну

Консистентні контракти: єдині DTO/події, сувора схема і версія.
Ідемпотентність: ключі запиту, дедуплікація, безпечні повтори.
Fail-safe за замовчуванням: полісі таймаутів, backoff, circuit breaker.
Обсервабіліті як функція: все виміряно і трасуемо.
Відділення інтеграції від домену: адаптери не «знають» бізнес-логіку ядра.
Подієвість: publish/subscribe для асинхронних процесів.
Версіонування: SemVer контрактів і керована деприкація.

3) Високорівнева архітектура

API Gateway: автентифікація, rate limits, канарські релізи, WAF.
Оркестратор/Router: маршрутизація по провайдерам, пріоритети, failover, smart-routing.
Адаптери провайдерів: REST/gRPC/GraphQL/WebSocket, маппінг полів, локальні кеші.
EDA-шина (Kafka/RabbitMQ/NATS): події «платіж створено», «KYC пройдено», «ігрова сесія стартувала».
Сервіс контрактів/схем: Schema Registry для JSON/Avro/Protobuf.
Сховище стану інтеграцій: ключі ідемпотентності, кореляція, статуси.
Спостережуваність: Prometheus/OTel + дашборди та алерти.
DevPortal: каталоги інтеграцій, OpenAPI/Protobuf, приклади, пісочниці.

4) Контракти даних і схеми

Строгі схеми (JSON Schema/Avro/Protobuf), обов'язкова валідація на вході/виході.
Schema Registry з політикою сумісності (backward-compatible).
Чіткі угоди про помилки (єдиний формат коду/деталей).

5) Підтримувані протоколи

REST (OpenAPI): універсально, легко документувати.
gRPC: високопродуктивно для внутрішніх зв'язків.
GraphQL: коли потрібні агреговані вибірки.
Webhooks: події до зовнішніх систем; підпис HMAC, повторна доставка.
SSE/WebSocket: стрімінг лайв-подій (live-статуси, транзакції).

6) Безпека та доступ

mTLS між внутрішніми сервісами.
OAuth2/OIDC для зовнішніх клієнтів, короткоживучі токени.
JWT для службової федерації ідентичностей; аудит claims.
HMAC підписи для webhooks/критично важливих коллбеків.
IP-allowlist, WAF, RASP, фільтри анти-бот.
Секрет-менеджмент (KMS/HSM), ротація ключів, split-knowledge.
GDPR/PCI DSS: мінімізація персональних і карткових даних, токенізація.

7) Маршрутизація та оркестрація

Policy-based routing: по гео, валюті, метрикам відмов, SLA провайдера.
Failover: послідовність PSP/провайдерів, автоматична деградація.
Circuit Breaker: швидкі відмовостійкі гілки при частих помилках.
Bulkhead: ізоляція по провайдерам/тенантам/пулу потоків.
Saga/оркестрація для довгих процесів (реєстрація → KYC → депозит).

8) Ідемпотентність і Exactly-Once (настільки, наскільки реально)

Idempotency-Key + кеш статусу/відповіді.
Дедуплікація подій в шині (ключ кореляції).
Сховище «seen-requests» c TTL.

Приклад запиту:
http
POST /payments
Idempotency-Key: 3d8c1a4f-7f0e-4a2a-9e5a-2b8d3e7e2c11
Content-Type: application/json
json
{
"tenantId": "eu-casino-12",
"userId": "u-9812",
"currency": "EUR",
"amount": 50. 00,
"method": "card",
"metadata": {"orderId": "ORD-2025-1105-001"}
}

HUB збереже результат і при повторах поверне ту ж відповідь.

9) Черги і подієва шина

Kafka/NATS/RabbitMQ для асинхронних кроків: KYC-результати, статуси виплат, баланс провайдера ігор.
Теми з ключами партіонування: `tenantId`, `userId` или `providerId`.
Retention і DLQ (dead-letter) з автоматичним перевідправленням після фіксу.
Outbox-патерн в сервісах ядра для гарантованої публікації подій.

10) Версіонування та сумісність

SemVer на контрактах: `v1`, `v1. 1`, `v2`.
Паралельне існування двох мінорних версій, чіткий графік деприкації.
Міграційні адаптери (тимчасові маппери полів) для плавного переходу.

11) Спостережуваність і надійність

Метрики: latency p50/p95/p99, error rate, throughput, success ratio по провайдерам, час підтвердження подій, «Time-to-Wallet».
Трейсинг (OTel): наскрізні'trace _ id '/' span _ id'від API-виклику до відповіді провайдера.
Логи: структуровані, з кореляцією'request _ id', маскування PII/PAN.
SLO: наприклад, 99. 9% успішних відповідей <1. 5s для критичних шляхів.
Алерти: по SLO-error budget, зростанню DLQ, аномаліям ретраїв/таймаутів.

12) Пісочниці та тестові контури

Sandbox для кожного провайдера: фікстури, емулятори відповідей, версіонування даних.
Contract-testing (Pact/Buf) і автогенерація SDK.
Навантажувальні профілі за сценаріями «пікові турніри», «платіжні хвилі».

13) Категорії інтеграцій (приклад для iGaming)

Платежі/висновки: PSP, A2A/Open Banking, крипто-шлюзи.
KYC/AML/Ризик: верифікація особи/адреси, санкційні списки, поведінковий скоринг.
Провайдери ігор/Агрегатори: запуск сесій, токени гри, зворотні коллбеки результатів.
Комунікації: email/SMS/push/месенджери.
Аналітика/BI: стрімінг подій і агрегати.
Фрод/Чарджбеки: диспут-центри, оповіщення.

14) Мульти-тенантність і регіональність

Ізоляція по tenantId: ключі шифрування, квоти, ліміти, пули з'єднань.
Гео-шардинг: маршрутизація в найближчий РОР/регіон, облік локальних правил.
Локалізовані провайдера/методи оплати: список за юрисдикцією та KYC-рівнями.

15) Продуктивність і кешування

Кеш токенів (PSP/KYC), відповіді метаданих провайдерів (TTL).
Connection pooling іreuse TLS-сесій.
Async I/O для високих RPS; батчінг в адаптерах.
Rate limits на клієнтському і провайдерському периметрах.

16) Наскрізні сценарії (приклади)

16. 1 Депозит (картка)

1.'POST/payments'( ідемпотентний) → Оркестратор → PSP # 1.
2. Таймаут 2с; при `5xx/timeout` — retry с backoff; при деградації - PSP # 2.
3. Подія'payment. authorized'→ ядро балансу → BI/антифрод.

16. 2 KYC

1.'POST/kyc/submit'→ адаптер провайдера KYC.
2. Відповідь async: webhook `kyc. result'підписується HMAC; при неуспіху - повторна доставка (до N разів).
3. Подія'kyc. verified'публікується в шину.

16. 3 Ігрова сесія

1.'POST/games/session'→ адаптер агрегатора → токен сесії.
2. Коллбеки результатів/ставок → HUB валідує підпис і ідемпотентність.
3. Подія'game. round. settled'йде в розрахунок виплат і звітність.

17) Помилки та єдиний формат відповіді

Коди: `INTEGRATION_TIMEOUT`, `PROVIDER_UNAVAILABLE`, `CONTRACT_VALIDATION_FAILED`, `SECURITY_SIGNATURE_INVALID`.

Тіло помилки:
json
{
"code": "PROVIDER_UNAVAILABLE",
"message": "Primary PSP degraded, switched to fallback",
"correlationId": "9f8e1b6a-1c2d-4b4e-9d31-91c6bc31c1d4",
"provider": "psp-1",
"hint": "Retry allowed; idempotency key required"
}

18) Безпечні webhooks: Підпис і повтори

Підписуйте кожен webhook:

X-Signature: sha256=hex(hmac_sha256(secret, body + timestamp))
X-Timestamp: 1730812800

Перевіряйте drift часу і приймайте тільки свіжі повідомлення. Повтори - по експоненті до N, потім в DLQ.

19) Управління змінами та релізи

Канарні адаптери (1-5% трафіку), feature flags per-tenant.
Backward-compatible релізи: спочатку адаптери, потім контракти.
CAB/CRQ для зовнішніх провайдерів, вікна деплою узгоджені по SLA.

20) SLA / SLO / OLA

SLA провайдера: аптайм ≥ 99. 9%, ack webhooks ≤ 3с, фіналізація платежу ≤ 30с (p95).
SLO HUB: p95 < 1. 5с на критичні ендпоінти, error-rate <0. 3%.
OLA всередині: ліміти на черги, бюджет ретраїв, максимальні DLQ-часи.

21) Каталог інтеграцій та DevPortal

Сторінки провайдерів: статуси, версії адаптерів, вимоги до полів, чек-листи.
Автоген SDK (OpenAPI/gRPC), приклади, колекції Postman, mock-сервери.
Кнопка «Test in Sandbox» та інтеграційні пайплайни CI.

22) Безпека та комплаєнс

PII-редакція в логах, шифрування полів at-rest, поля PAN тільки в токенізованому вигляді.
RBAC/ABAC для операторських панелей, принцип найменших привілеїв.
Регістри згоди (GDPR), право на видалення/портування.
Вендор-ризик і DPIA для нових інтеграцій.

23) План впровадження (MVP → Scale)

MVP (0-2 міс.): Gateway, 1-2 PSP, 1 KYC, 1 агрегатор ігор, базові метрики, ідемпотентність, DLQ.
Phase 2 (3-4 міс.): EDA-шина, DevPortal, контракт-тести, fallback-маршрутизація, webhooks-підпис.
Phase 3 (5-6 міс.): кластери з гео-ролловером, smart-routing по SLA, розширені SLO/алерти, автоген SDK, canary.

24) Чек-лист перед продом

Контракти в Registry, тести сумісності пройдені.
Полісі таймаутів/ретраїв/брейкерів задані і покриті е2е-тестами.
IdempotencyKey включений в критичні POST/PUT.
Підписи webhooks перевірені, повтори конфігуровані, DLQ моніториться.
Метрики p95/p99 і error-rate відповідають SLO, алерти підключені.
Секрети в KMS, ротація перевірена; IP-allowlist/WAF активні.
Runbooks/плейбуки інцидентів опубліковані, on-call розписаний.
DevPortal і пісочниці доступні партнерам, версії задокументовані.

Короткий висновок

Інтеграційний HUB - це промисловий «щит і перекладач» між вашим ядром і світом зовнішніх сервісів. Його сила - в строгих контрактах, ідемпотентності, подієвій шині, керованому версіонуванні і спостережуваності. Така архітектура прискорює онбординг провайдерів, знижує ризики, дає передбачувані SLO і спрощує масштабування під піки трафіку і вихід на нові ринки.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Telegram
@Gamble_GC
Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.