Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Schéma Architecture

1. Contexte

J'ai pu constater que les ESN qui me contactent sont nombreuses à demander, notamment dans le secteur banques & assurances, des connaissances en :

  1. Microservices (là où j'ai toujours fait du monolithique)
  2. Angular côté front (là où j'ai surtout une expérience avancée en React)
  3. Java / Spring Boot côté back (je connais bien mais je peux approfondir la clean architecture / architecture hexagonale)

Pour ce projet libre de fin d'année je propose donc de développer une application bancaire simple mais avec un focus sur les bonnes pratiques de développement recherchées par les ESN, le tout en architecture microservices.

2. Description du Projet

Plateforme bancaire simplifiée, la web app permet à un utilisateur de gérer ses comptes et consulter des KPI, d'effectuer des transactions en temps réel, avec système asynchrone de détection de fraudes.

Le projet met l'accent sur les problématiques d'ingénierie backend (idempotence, pattern Saga, découplage)

3. Stack Technique et Architecture

Architecture microservices Database-per-service orchestrée localement via Docker Compose.

  • Backend (Core) : Java 25, Spring Boot 4
  • Frontend : Angular 22 (Signals, NgRx SignalStore), Tailwind CSS
  • Infrastructure Spring Cloud : Eureka (Service Discovery), Spring Cloud Gateway (API Gateway)
  • Bases de données : PostgreSQL (données relationnelles, profils), MongoDB (historique des transactions), Redis (mise en cache)
  • Message Broker : RabbitMQ (communication asynchrone entre services)
  • Sécurité et DevSecOps : Keycloak (OIDC/OAuth2) avec config automatisée via Terraform

4. Périmètre Fonctionnel et Microservices

Le backend est découpé en services autonomes :

  1. Auth/Customer Service : Gestion des profils utilisateurs (KYC).
  2. Account Service : Tenue des comptes, calcul des soldes en temps réel, génération d'IBAN.
  3. Transaction Service : Service critique développé en Architecture Hexagonale. Il gère les virements et garantit l'intégrité des opérations (ACID).
  4. Fraud-Detection Service : Service asynchrone écoutant les événements RabbitMQ pour bloquer les transactions suspectes.

5. Objectifs d'Apprentissage Pédagogiques

  • Frontend : Transition d'un profil React vers Angular, maîtrise de la gestion d'état centralisée avec NgRx SignalStore.
  • Backend : Implémentation du pattern Ports & Adaptateurs (Hexagonal), gestion de la consistance éventuelle entre microservices.
  • DevOps : IaC via Terraform pour le provisionnement du serveur Keycloak.

6. Critères d'Évaluation (MVP)

Le projet sera considéré comme réussi si :

  • L'infrastructure complète démarre avec une seule commande docker compose up.
  • Un utilisateur peut s'authentifier de manière sécurisée via le flux Keycloak.
  • Un virement d'un compte A vers un compte B s'exécute de manière asynchrone et met à jour l'interface Angular en temps réel, avec notification et gestion des cas d'erreurs.

7. Documentation & Ports des Services

Retrouvez la cartographie complète des ports, des identifiants et le détail des microservices dans la Documentation Architecture.

About

A good practices training project focused on microservices and clean architecture

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages