Pourquoi mettre en place une architecture réactive ?

Dans un projet où l’on doit traiter un volume important d’informations métier en temps réel, la mise en place d’une architecture réactive qui va conditionner toutes ces fonctionnalités est une solution efficace .
Pour ce faire, l’architecture réactive doit répondre à différents problèmes. Elle doit apporter des solution en matière de volumétrie et supervision, de gestion des erreurs opérationnelles, modularité de l’application, robustesse de la solution.

– Volumétrie

Dans le cas où on a un fort volume de datas/ jour à traiter, il faut gérer avec une architecture réactive. En effet, on risque d’avoir de potentiels goulots d’étranglement, il faut donc les outils pour contourner efficacement ces problèmes.

– Robustesse de la solution

Vu que l’application publie des messages à rejouer via Kafka, en re-publiant un message non traité jusqu’au bout, on peut le rejouer et éviter de perdre de la donnée, et être en mesure de continuer son traitement.

– Supervision

On arrive à introduire des metrics qui vont donner une vision d’ensemble, donner des statistiques, pour cela, on utilise des outils comme Elastic Search, et, on récupère des données via d’autres topics Kafka (par exemple, le Topic d’acquittement qui envoie des infos sur les données acquittées ou ouvertes).

– Modularité de l’application

Avec différentes briques de l’application, elles sont indépendantes les unes des autres et plus facilement maintenable en cas de problèmes ou dysfonctionnement. Ainsi, on peut corriger des erreurs dans le processus en temps réel.

Comment mettre en place une architecture réactive ?

Prenons l’exemple d’un projet de notifications pour comprendre comment fonctionne l’architecture réactive.

Comment installer une architecture reactive

Comment installer une architecture réactive

Comment anticiper les évolutions futures, techniques ou fonctionnelles ?

On peut anticiper les évolutions à partir du code qui permet l’ajout de nouveaux canaux, nouvelles fonctionnalités. Il est aussi possible de développer du code standard. Par la suite, il pourra être réutilisé dans d’autres contextes, donc, plus facilement maintenable. De plus, il aura la capacité d’évoluer, notamment dans de nouveaux canaux ou besoins métiers.

Dans un contexte global, pour optimiser les performances, vu qu’on récupère souvent la même donnée, il est plus simple de l’enregistrer en cash. Par cette action, on désengorge tous les appels, sans trop bouleverser le code avec la possibilité de l’amender facilement. Pour être efficace,  le code devra donc être modulaire, pour permettre de capitaliser sur tout ce qu’on fait.

 


NidhalSpécialiste de sujets liés aux Architecture Reactives, j’ai travaillé sur de nombreux projets stratégiques de refonte SI impliquant plusieurs métiers. Je suis également passionné par les sujets liés à l’Agile, je contribue d’ailleurs au blog Organisation Performante.

N’hésitez pas à me faire un retour sur cet article ou à me contacter sur LinkedIn pour partager nos actualités!

Nidhal

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Abonnez-vous à notre newsletter

Saisissez votre adresse e-mail pour vous abonner à ce blog et recevoir les derniers articles publiés!