Introducere

PlayWing, o companie de gaming din Franța, avea nevoie de o soluție robustă pentru a gestiona microplățile mobile la nivel global.

Obiectivul companiei era să-și extindă operațiunile pentru a acomoda un număr mare de utilizatori ce efectează plăți mici, dar regulate.

OPTI a dezvoltat o platformă care interacționează cu sute de sisteme de plăți din diferite țări și rețele de telefonie mobilă.

Provocări

Proiectul a prezentat provocări semnificative, atât tehnice cât și umane:

  • Sutele de rețele de telefonie mobilă aveau propriile API cu caracteristici diferite.
  • Cumpărătorii jocurilor diverse din portofoliu trebuiau să aibă o experiență unitară în procesul de plată.
  • Platforma trebuia să gestioneze eficient milioane de microtranzacții.
  • Sistemul de plăți trebuia să fie fiabil, cu trasabilitate completă pentru tranzacții, inclusiv pentru rambursări financiare.
PlayWing
"OPTI este un partener cheie care ne-a permis să lansăm rapid pe piață într-un moment în care echipele noastre erau la început. Atributele care descriu colaborarea noastră cu ei sunt: orientați spre rezultate, rapizi, proactivi, o etică excelentă în muncă."
- PlayWing

Etapa 1: Unificarea a sute de API-uri

Primul pas a fost standardizarea interacțiunilor cu sutele de sisteme diferite ale partenerilor (în principal rețele de telefonie):

  • Suport pentru API-uri HTTP și non-HTTP.
  • Metode multiple de autentificare și internaționalizare.
  • Modele multiple de interacțiune: trimiterea unei cereri și primirea unui răspuns sau descărcarea răspunsului, sau așteptarea primirii unui răspuns șamd.

OPTI a realizat o standardizare la nivel înalt:

  • Modelarea utilizatorilor (milioane de clienți finali)
  • Modelarea procedurilor (acțiuni făcute de sau pentru un client. Ex: plata, verificarea soldului sau rambursarea).
  • Modelarea conceptelor intermediare pentru tranziția de la entitățile de nivel înalt către API-urile de nivel jos.

Standardizarea a utilizat UML și baze de date structurate SQL.

API HTTP
Format de date JSON
Date structurate SQL
SSL și oAuth
Șabloane de cod
User management
Provocări tehnice

Etapa 2: Unificarea fluxurilor și a experiențelor clienților

Scopul platformei de plăți a fost să crească conversiile prin monitorizarea fluxului de vânzare. Am luat în considerare:

  • Diferențele de reglementare (legislația fiecărei țări).
  • Diferențele de programare a plăților: taxe unice, taxe zilnice, taxe săptămânale etc.
  • Verificarea soldului.
  • Granularitatea produsului: Una dintre miile de variante ale produsului va fi livrat după ce plata a fost efectuată.
Constrângeri legale
Plăți prin SMS
Plăți recurente
Livrare electronică a produselor
Separarea preocupărilor
Standardele comune de programare
Provocări tehnice

Etapa 3: Asigurarea vitezei și scalabilității

Platforma de plăți trebuia să poată gestiona sute de milioane sau chiar miliarde de plăți. Prioritățile noastre de top au fost:

  • Viteza plății.
  • Regularitatea plății.
  • Resurse distribuite și scalarea orizontală.
  • Organizarea logică a resurselor tehnices

OPTI a măsurat și calculat impactul fiecărui modul asupra eficienței totale, alegând tehnologii testate și sigure. S-a dezvoltat de la zero un motor de programare (scheduling) a sarcinilor.

Some highlights:

REST API Rapid
Motor de scheduling
Scalare orizontală
Separarea preocupărilor
Multithreading
Data-driven design
Provocări tehnice

Etapa 4: Fiabilitate și trasabilitate

Sistemul de plăți trebuie să fie extrem de fiabil și investigabil prin:

  • Istoricul plăților individuale.
  • Atomicitate și reversibilitate.
  • Acces ușor la inspecție și la jurnalul de activități.
  • Documentare și ușurință în modificare.

OPTI a proiectat un storage de date distinct NoSQL pentru a păstra toate interacțiunile cu clienții. De asemenea, toate interacțiunile dintre diferite APIuri sunt, de asemenea, reținute.

Documentația proiectului include standardele de programare, structura de programare și documentația API-urilor.

Istoricul plăților
Jurnale complete
Depozit de date NoSQL
Documentație de cod
Manual API
Standarde de codare
Acest proiect a necesitat o arhitectură de microservicii robustă, capabilă să gestioneze un volum mare de tranzacții. Fiecare integrare cu operatorii de telefonie a fost tratată ca un microserviciu independent, permițând scalabilitate orizontală și mentenanță facilă. Utilizarea unei baze de date NoSQL a fost crucială pentru a stoca log-urile a miliarde de interacțiuni

Rezultate

Miliarde de plăți mobile și prin SMS

Sistemul suportă o încărcare de până la o sută de milioane de microplăți pe zi.

Milioane de abonați

Utilizatorii sunt abonați și taxați la intervale regulate utilizând plăți mobile și SMS.

Asigurarea calității

Sistemul efectuează o verificare fiabilă a soldului. Plăți parțiale, reîncercare, amânare, rambursare.

Analize în timp real

Sistemele sunt integrate cu o platformă de analiză puternică care permite inspecția și reacția în timp real.

Optimizare locală

Sistemul este optimizat cu eficiență, pentru a taxa utilizatorii în cel mai scurt interval de timp.

Infrastructură în cloud

Sistemul rulează în cloud pe o infrastructură scalabilă, permițând controlul costurilor și scalarea ușoară.

Referințe

Întrebări rapide

Care a fost complexitatea tehnică a proiectului?

Platforma trebuia să se integreze cu sute de rețele de telefonie mobilă, fiecare cu propriul API, și să gestioneze eficient milioane de microtranzacții zilnice la nivel global.

Ce arhitectură software a fost utilizată?

Am folosit o arhitectură bazată pe microservicii, unde fiecare integrare cu un partener era un serviciu independent. Acest lucru a permis scalabilitate orizontală și o mentenanță mult mai ușoară.

Cum a fost asigurată fiabilitatea tranzacțiilor?

Fiecare tranzacție a fost proiectată să fie atomică și reversibilă. Am implementat un sistem de logging detaliat într-o bază de date NoSQL pentru a asigura trasabilitate completă și a facilita investigarea oricărei probleme.

Care este concluzia (TLDR)?

Acest proiect a necesitat o arhitectură de microservicii robustă, capabilă să gestioneze un volum mare de tranzacții. Fiecare integrare cu operatorii de telefonie a fost tratată ca un microserviciu independent, permițând scalabilitate orizontală și mentenanță facilă. Utilizarea unei baze de date NoSQL a fost crucială pentru a stoca log-urile a miliarde de interacțiuni

Care sunt tehnologiile și metodologiile implicate?

Tehnologii: SQL, NoSQL, API, UML, PHP, Javascript, Java, AWS
Metodologii: Arhitectură de microservicii, Scalare orizontală, Motor de scheduling, Data-driven design, Managementul tranzacțiilor (atomicitate, reversibilitate).

Marian Călborean

Articol scris de

Marian Călborean

Manager, arhitect software. PhD. logică

Vezi profil LinkedIn →
Interesat?

Interesat?

Contact us