- Publié le
Architecture d'une Neobanque - Revolut
- Auteurs
- Nom
- AbnAsia.org
- @steven_n_t
Revolut est la plus grande néobanque du Royaume-Uni et d'Europe avec plus de 30 millions de clients particuliers pour 2023.
Il est devenu populaire parmi les voyageurs et les expatriés qui envoient de l'argent à l'étranger grâce à ses frais bas et à ses taux de change attractifs.
Revolut a réussi à construire une architecture de microservices pilotée par les événements que de nombreuses entreprises ont du mal à mettre en œuvre. Cette architecture était le résultat d'essais et d'erreurs ; elle a subi une transformation à partir d'une monolithique et a mûri de la manière dont elle est présentée dans le diagramme.
Le backend est composé de nombreux microservices indépendants qui communiquent en envoyant et en recevant des événements. Les événements sont persistés dans un seul magasin d'événements, qui est une base de données Postgres. Les informations du magasin d'événements sont consommées par différents modules tels que Risk, PnL et détection de fraude.
Pile technologique
1️⃣ Java, Kotlin pour le backend
2️⃣ GCP en tant que fournisseur de cloud public
3️⃣ PostgreSQL (répliqué pour supporter le streaming)
4️⃣ JetBrains Ktor et Kotlin coroutines pour envoyer des événements et le streaming
5️⃣ jOOQ pour écrire des requêtes SQL
6️⃣ RSocket Reactive Streams
7️⃣ ReactJS pour le frontend
Microservices pilotés par les événements
1️⃣ Les microservices communiquent en échangeant des événements (en utilisant Kotlin Coroutines).
2️⃣ Avant d'envoyer, un événement est persisté dans la table du magasin d'événements dans la base de données Postgres.
3️⃣ Un service récepteur implémente un gestionnaire onEvent pour traiter un événement.
4️⃣ Un processus de réconciliation livre les événements qui sont présents dans la base de données mais qui n'ont pas été livrés.
5️⃣ Le magasin d'événements est utilisé pour les requêtes, le streaming, l'analyse et la création de rapports.
Streaming d'événements
1️⃣ SingleEventConsumer et MultiEventConsumer sont utilisés par les clients pour s'abonner à des événements.
2️⃣ Chaque application qui consomme des événements repose sur le processeur d'événements.
3️⃣ Le processeur d'événements est responsable de la distribution des événements de l'abonnement aux consommateurs.
4️⃣ La mise en œuvre du streaming est basée sur les ensembles de résultats JDBC défilables (Cursors).
5️⃣ Une réplique en lecture du magasin d'événements est utilisée pour améliorer les performances.
Consistance des données
☑️ Utiliser des transactions lorsque cela est possible, par exemple, pour les actions qui ont des limites dans le système.
☑️ Lorsque les transactions ne sont pas applicables, la plateforme met en œuvre une réconciliation basée sur des tâches, par exemple, lors de l'appel d'API externes.
☑️ Revolut utilise un gestionnaire de transactions pour initier des transactions et déplacer des vérifications coûteuses à l'extérieur.
Il est intéressant de noter qu'ils ont pris la décision consciente de ne pas utiliser Kafka, qui existait déjà lorsqu'ils ont construit leur plateforme. L'une des principales raisons est la complexité de la maintenance et de la configuration et, probablement, la courbe d'apprentissage abrupte. Lorsqu'il est développé en interne, la solution propriétaire basée sur une base de données relationnelle est facile à maintenir, à personnaliser et à interroger des données.
Veuillez noter que la version française est assistée par Ai, des erreurs mineures peuvent donc exister.
Auteur
AiUTOMATING PEOPLE, ABN ASIA a été fondée par des personnes ayant des racines profondes dans le milieu académique, avec une expérience professionnelle aux États-Unis, aux Pays-Bas, en Hongrie, au Japon, en Corée du Sud, à Singapour et au Vietnam. ABN ASIA est l'endroit où l'académie et la technologie rencontrent l'opportunité. Avec nos solutions de pointe et nos services de développement logiciel compétents, nous aidons les entreprises à se développer et à s'imposer sur la scène mondiale. Notre engagement : Plus vite. Mieux. Plus fiable. Dans la plupart des cas : moins cher également.
N'hésitez pas à nous contacter chaque fois que vous avez besoin de services informatiques, de conseils en matière de numérique, de solutions logicielles prêtes à l'emploi, ou si vous souhaitez nous envoyer des demandes de propositions (RFP). Vous pouvez nous contacter à l'adresse [email protected]. Nous sommes prêts à vous aider avec tous vos besoins technologiques.
© ABN ASIA