Інтеграційний 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 і спрощує масштабування під піки трафіку і вихід на нові ринки.