Client
La société fintech britannique a chargé Elinext de développer une application Web de gestion de trésorerie et de liquidités.
Défi
En 2019, à l'approche du Brexit, les banques se préparaient à des perturbations dans leurs opérations. Certains de leurs clients arrêteraient les paiements pour réorganiser leur dette, ce qui déclencherait une réaction en chaîne. Par conséquent, les banques elles-mêmes risqueraient d'être incapables de respecter leurs obligations financières envers d'autres clients.
Une société fintech britannique a envisagé un outil permettant de déterminer si une banque peut payer ses obligations si le client met fin aux paiements après l'appel de clôture. La société avait déjà travaillé avec Elinext et savait que nous avions de l'expérience dans la fintech, alors ils nous ont demandé de l'aide.
Processus
Le client ne nous a fourni qu'une documentation de haut niveau contenant des spécifications purement financières. Nos analystes d'affaires ont travaillé avec les experts du client pour traduire cela en spécifications techniques que les développeurs pourraient utiliser.
Pendant ce temps, notre ingénieur DevOps et nos développeurs ont commencé à préparer l'environnement de développement et le squelette du futur produit. Et une fois la technologie technologie a été mise en œuvre et que les spécifications techniques ont été affinées, le développement a commencé. En un mois, nous avons créé un produit minimum viable (MVP).
La première partiedevait être achevée dans un délai de six mois. La première conférence fintech sur site après le confinement était en préparation, et notre client prévoyait de présenter le produit à ce moment-là. Bien que le Brexit soit terminé, une solution que nous avons été chargés de construire était toujours très demandée.
Nous avons livré avec succès une version stable et entièrement fonctionnelle du produit avant la conférence. Et les trois mois suivants ont été consacrés au polissage et à l'amélioration de l'application.
Produit
Le système que nous avons construit permet aux banques et autres organisations financières de gérer et de surveiller les besoins de financement intrajournaliers et à court terme en fonction de l'historique des transactions. Et cela du plus haut niveau jusqu'aux transactions individuelles.
Tout d'abord, les organisations qui utilisent l'application peuvent consolider des infrastructures cloisonnées, capturant les transactions de n'importe quelle source interne ou externe. En conséquence, une vue unique et globale des soldes est créée pour toutes les devises et tous les comptes.
De plus, il faut quelques minutes pour exécuter un scénario de stress complet au sein du système.
Le résultat final est une analyse très précise, facilitant la prise de décision éclairée et permettant de répondre plus efficacement aux exigences de reporting de liquidité intrajournalier. La solution aide également les banques à se conformer au cadre de gestion des liquidités intrajournalières BCBS 248 mis en œuvre par divers régulateurs à travers le monde.
Déploiement
Nous avons combiné Kubernetes avec microservices et Angular pour implémenter l'interface graphique. L'architecture basée sur les microservices a été choisie car elle permet au système d'être tolérant aux pannes - la priorité absolue pour notre client.
De plus, le système traite beaucoup de calculs et d'énormes quantités de données, ce qui nécessite une mise à l'échelle automatique, et Kubernetes est bon pour cela.
Pour les vérifications de l'état du système, la gestion des alertes et les indicateurs de traçabilité, nous avons mis en place le système de surveillance open source Prometheus. Notre équipe l'a configuré avec l'aide de son équipe d'assistance officielle, Grafana.
Microservices
Le système fonctionne sur sept microservices:
- Le stockage de données bancaires statiques telles que BIC, comptes, devises, etc., est disponible avec PostgreSQL.
- Le stockage de données dynamiques telles que les transactions et les taux de change est disponible avec MongoDB.
- Les calculs basés sur des algorithmes et des opérations avec des données statiques et dynamiques.
- L'importation de données dynamiques et statiques.
- Mappage de sécurité pour les utilisateurs (qui ont accès à chaque élément).
- Fournisseur d'identité OAuth2 personnalisé
- La fonction reporter pour fournir et comparer des données avant et après les calculs Les microservices sont synchronisés les uns avec les autres à l'aide de Redis. Et la même technologie est responsable du cache local.
Résultats
Nous avons terminé le projet à temps et dans les limites du budget fixe. Environ cinq millions d'envois sont traités quotidiennement dans le système par jusqu'à 75 banques et autres organisations financières.