Intégration HUB et API
1) Rôle et zone de responsabilité du HUB
Le HUB d'intégration (ci-après le HUB) est une couche entre le noyau de la plate-forme et le monde extérieur (fournisseurs de jeux, PSP, KYC/AML, CRM, risque-scoring, antifrod, BI/analytique, notifications). Ses tâches :- unifier les protocoles et les formats ;
- assurer la fiabilité (retraits, files d'attente, policy timauts, circuit breaker) ;
- garantir la sécurité (mTLS, OAuth2, JWT, HMAC, IP-allowlist) ;
- centraliser l'observabilité (logs, métriques, tracés) ;
- simplifier le changement de fournisseur (adaptateurs + mapping de champs) ;
- donner des contrats stables aux équipes du produit.
2) Principes de conception
Contrats constants : un seul DTO/événements, un schéma et une version rigoureux.
Idempotence : clés de requête, déduplication, répétitions sécurisées.
Fail-safe par défaut : Policy timeouts, backoff, circuit breaker.
Observabilité en fonction : tout est mesurable et tracable.
Séparer l'intégration du domaine : les adaptateurs ne « connaissent » pas la logique métier du noyau.
Evénement : publish/subscribe pour les processus asynchrones.
Versioning : BouVer contrats et privation gérée.
3) Architecture de haut niveau
API Gateway : authentification, limites de taux, versions canaries, WAF.
Orchestrateur/Routeur : routage par fournisseurs, priorités, échec, routage intelligent.
Adaptateurs fournisseurs : REST/gRPC/GraphQL/WebSocket, mapping de champs, caches locaux.
EDA-pneu (Kafka/RabbitMQ/NATS) : événements « paiement créé », « KYC passé », « la session de jeu a commencé ».
Service de contrats/schémas : Schema Registry pour JSON/Avro/Protobuf.
Stockage de l'état des intégrations : clés d'idempotence, corollation, statuts.
Observabilité : Prometheus/OTel + dashboards et alerts.
DevPortal : répertoires d'intégration, OpenAPI/Protobuf, exemples, bac à sable.
4) Contrats et schémas de données
Schémas rigoureux (JSON Schema/Avro/Protobuf), validation obligatoire en entrée/sortie.
Schema Registry avec la politique de compatibilité (backward-compatible).
Accords d'erreur clairs (format de code/pièce unique).
5) Protocoles pris en charge
REST (OpenAPI) : polyvalent, facile à documenter.
gRPC : performant pour les connexions internes.
GraphQL : quand vous avez besoin d'échantillons agrégés.
Webhooks : événements vers des systèmes externes ; Signature HMAC, refoulement.
SSE/WebSocket : streaming d'événements (live-status, transactions).
6) Sécurité et accès
mTLS entre les services internes.
OAuth2/OIDC pour les clients externes, jetons à courte durée de vie.
JWT pour la fédération d'identité de service ; audit des climats.
Signatures HMAC pour les webhooks/collbeks critiques.
IP-allowlist, WAF, RASP, filtres anti-bot.
Gestion des secrets (KMS/HSM), rotation des clés, split-knowledge.
GDPR/PCI DSS : minimisation des données personnelles et de cartes, tokenisation.
7) Routage et orchestration
Policy-based routing : par géo, devise, métriques de refus, fournisseur SLA.
Failover : séquence PSP/fournisseurs, dégradation automatique.
Circuit Breaker : branches rapides et résistantes aux pannes en cas d'erreurs fréquentes.
Bulkhead : isolation par fournisseurs/tenants/pool de flux.
Saga/orchestration pour processus longs (enregistrement → KYC → dépôt).
8) Idempotence et Exactly-Once (aussi réel que réel)
Idempotency-Key + cache état/réponse.
Déduplication des événements dans le bus (clé de corollation).
Stockage « seen-requests » avec 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 enregistre le résultat et renvoie la même réponse en cas de répétitions.
9) Files d'attente et bus d'événement
Kafka/NATS/RabbitMQ pour les étapes asynchrones : résultats KYC, états de paiement, solde du fournisseur de jeux.
Thèmes avec clés de lot : 'tenantId', 'userId' ou 'providerId'.
Retentation et DLQ (dead-letter) avec rediffusion automatique après fix.
Modèle Outbox dans les services du noyau pour une publication d'événements garantie.
10) Versioning et compatibilité
BouVer sur les contrats : 'v1', 'v1. 1`, `v2`.
L'existence parallèle de deux versions mineures, un graphique clair de la privation.
Adaptateurs de migration (mappeurs de champs temporaires) pour une transition en douceur.
11) Observabilité et fiabilité
Métriques : latency p50/p95/p99, error rate, throughput, success ratio par les fournisseurs, heure de confirmation des événements, « Time-to-Wallet ».
Tracing (OTel) : de bout en bout 'trace _ id '/' span _ id' de l'appel API à la réponse du fournisseur.
Logs : structurés, avec corollation "request _ id', masquage PII/PAN.
SLO : par exemple, 99. 9 % de réponses réussies <1. 5s pour les voies critiques.
Alertie : selon le budget SLO-error, la croissance du DLQ, les anomalies des rétrogrades/temporelles.
12) Sandbox et boucles d'essai
Sandbox pour chaque fournisseur : fictions, émulateurs de réponses, versioning de données.
Contract-testing (Pacte/Buf) et auto-génération SDK.
Profils de charge selon les scénarios « tournois de pointe », « vagues de paiement ».
13) Catégories d'intégrations (exemple pour iGaming)
Paiements/conclusions : PSP, A2A/Open Banking, crypto-passerelles.
KYC/AML/Risque : vérification de l'identité/adresse, listes de sanctions, scoring comportemental.
Fournisseurs de jeux/Agrégateurs : lancement des sessions, jetons de jeu, collbecks de retour des résultats.
Communications : email/SMS/push/messagers.
Analytics/BI : streaming d'événements et agrégats.
Frod/Charjbeki : centres de discussion, alertes.
14) Multitenance et régionalité
Isolation par tenantId : clés de cryptage, quotas, limites, pools de connexion.
Géolocalisation : acheminement vers le RR/région le plus proche, prise en compte des règles locales.
Fournisseurs localisés/méthodes de paiement : liste par juridiction et niveaux KYC.
15) Performances et mise en cache
Cache de token (PSP/KYC), réponses de métadonnées de fournisseurs (TTL).
Connection pooling ireuse TLS sessions.
Async I/O pour des RPS élevés ; Batching dans les adaptateurs.
Taux limites sur les périmètres client et fournisseur.
16) Scénarios de bout en bout (exemples)
16. 1 Dépôt (carte)
1. 'POST/payments' (idempotent) → Orchestrateur → PSP # 1.
2. Temporisation 2c ; при `5xx/timeout` — retry с backoff; dans la dégradation - PSP # 2.
3. L'événement 'payment'. autorisé '→ le noyau du bilan → BI/antifrode.
16. 2 KYC
1. 'POST/kyc/submit' → l'adaptateur du fournisseur KYC.
2. Réponse async : webhook 'kyc. result'est signé par le HMAC ; en cas d'échec, refoulement (jusqu'à N fois).
3. L'événement 'kyc. verified 'est publié dans le bus.
16. 3 Session de jeu
1. 'POST/games/session' → adaptateur d'agrégateur → jeton de session.
2. Les collbecks de résultats/paris → HUB valident la signature et l'idempotence.
3. L'événement 'game'. round. settled 'va dans le calcul des paiements et des rapports.
17) Erreurs et format de réponse unique
Коды: `INTEGRATION_TIMEOUT`, `PROVIDER_UNAVAILABLE`, `CONTRACT_VALIDATION_FAILED`, `SECURITY_SIGNATURE_INVALID`.
Corps d'erreur :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 sécurisés : signature et répétitions
Signez chaque webhook :
X-Signature: sha256=hex(hmac_sha256(secret, body + timestamp))
X-Timestamp: 1730812800
Vérifiez le temps de drift et n'acceptez que les nouvelles notifications. Répétitions - par exposant jusqu'à N, puis à DLQ.
19) Gestion des changements et des communiqués
Adaptateurs Canaries (1-5 % du trafic), feature flags per-tenant.
Versions backward-compatibles : d'abord les adaptateurs, puis les contrats.
CAC/CRQ pour les fournisseurs externes, les fenêtres de dépliage sont harmonisées par SLA.
20) SLA / SLO / OLA
Fournisseur SLA : Aptyme ≥ 99. 9 %, ack webhooks ≤ 3c, finalisation du paiement ≤ 30c (p95).
SLO HUB: p95 < 1. 5c par endpoints critiques, error-rate <0. 3%.
OLA à l'intérieur : limites sur la file d'attente, budget rétroactif, temps maximum DLQ.
21) Annuaire des intégrations et DevPortal
Pages des fournisseurs : statuts, versions des adaptateurs, exigences des champs, chèques-feuilles.
AutoGen SDK (OpenAPI/gRPC), exemples, collections Postman, serveurs mock.
Bouton « Test dans Sandbox » et piplines d'intégration CI.
22) Sécurité et conformité
La révision PII dans les logs, le cryptage des champs at-rest, les champs PAN uniquement dans une forme tokenisée.
RBAC/ABAC pour les panneaux opérateurs, le principe du moindre privilège.
Registres de consentement (RGPD), droit de suppression/portage.
Risque vendeur et DPIA pour les nouvelles intégrations.
23) Plan de mise en œuvre (MVP → Scale)
MVP (0-2 mois.) : Gateway, 1-2 PSP, 1 KYC, 1 agrégateur de jeux, métriques de base, idempotence, DLQ.
Phase 2 (3-4 mois.) : bus EDA, DevPortal, test de contrat, routage fallback, signature webhooks.
Phase 3 (5-6 mois.) : clusters avec géo-rollover, smart routing par SLA, SLO/alertes étendues, SDK auto, canary.
24) Chèque-liste avant la vente
Contrats avec Registry, tests de compatibilité passés.
Policy Timeouts/Retracers/Breakers sont définis et couverts par e2e tests.
IdempotencyKey est inclus dans le POST/PUT critique.
Les signatures webhooks sont vérifiées, les répétitions sont configurées, le DLQ est surveillé.
Les métriques p95/p99 et error-rate correspondent au SLO, les alertes sont connectées.
Secrets dans le KMS, rotation vérifiée ; IP-allowlist/WAF sont actifs.
Runbooks/Pleybooks incidents publiés, en ligne.
DevPortal et sandbox sont disponibles pour les partenaires, les versions sont documentées.
Conclusion courte
Le HUB d'intégration est un « bouclier et traducteur » industriel entre votre noyau et le monde des services externes. Sa force est dans les contrats stricts, l'idempotence, le bus d'événements, le versioning et l'observabilité. Cette architecture accélère l'engorgement des fournisseurs, réduit les risques, fournit des SLO prévisibles et facilite l'évolutivité sous les pics du trafic et l'entrée sur de nouveaux marchés.