leçon#2 Bonnes Pratiques des Architectures Distribuées 👉🏻👉🏻👉🏻
Schéma du Processus de Communicarion ou Diagramme de Spéquence d'une Arcitecture distribuée
Configuration d'un canal de communication Asynchrone entre deux services (A et B)
#exemple
Au niveau de L’API B, un évènement utilisateur (User Event) se déclenche,
le processus est envoyé et traité au niveau de la couche Busines Logic B ou service B, l’utilisateur demande d’effectuer une opération à partir de la couche Busines Logic B en suite de persister la nouvelle donnée dans la base donnée ou modifier la valeur existante dans la base donnée.
Nous utiliser Spring Data pour l’insérer dans la Base de Donnée (DB B). Il se trouve que la donnée générée après le traitement de la couche Busines Logic B et que nous venons d’insérer dans DB B, est également importante pour le service de l’API A.
Et on voudrait qu’il soit ajouté à la Base de donnée DB A ou insérer dans la base de donnée du Micro-service A.
Une fois la donnée insérée dans la DB B, la couche Busines Logic B va publier l’évènement(Publish) comme quoi il y a des données (dans notre cas une donnée) qui arrivent.
La donnée est reçu dans le Bus d’évènement(Topic) et après comme le service A à un Event Handler (écouteur) non bloquant(Synchronisation) donc il récupère la donnée et utilise Spring Data pour persister ou insérer la valeur de la donnée dans DB A
Architecture Microservice
Lecon #1 Comment et quand doit-on mettre en place une communication Asynchrone une Arcitecture Micro-service ?
#performance(scalabilité) : en règle général, on pense à concevoir une application avec l’architecture Micro-service pour des gains de performance.
#processus séparés : la logique métier ou les services sont indépadants, si une parite bloque le reste des services continuent de fonctionner.
#technologies différents: On a besoins de faire interagir différents Langages de programmation, evolué dans une architecture distribuées ou un environnement hybride.
#équipe indépendante : chaque équipe peut travailler indépendamment de l’autre et se concentrer sur sa tache.