Bonne pratique
Lorsque l’interaction avec l’utilisateur induit un traitement lourd et long côté serveur, proposer un traitement asynchrone lorsque c’est possible. L’idée est d’encourager l’utilisateur à déclencher le traitement, puis à se reconnecter quand celui-ci est terminé sans attendre sur son terminal la fin de l'exécution ; par exemple, via la réception d’un e-mail contenant un lien. Cette approche permet de réaliser des traitements par lots (batchs), souvent plus efficients en ressources que des traitements synchrones à la volée. On libère ainsi les serveurs de présentation, qui peuvent prendre en charge d’autres internautes pendant que le traitement s’effectue en mode asynchrone côté serveur. Il est également plus aisé de lisser la charge du serveur responsable du traitement, ce qui permet une meilleure mutualisation de serveurs et par conséquent moins de serveurs.
Le "Référentiel d'écoconception web (REW)" est publié par GreenIT.fr dans le cadre des travaux du Collectif conception numérique responsable selon les termes de la licence Creative Commons Attribution.
Nous maîtrisons les problématiques back-end, notamment avec des workers pour traiter des tâches lourdes en arrière-plan. Utiliser NestJS pour implémenter ces workers permet de gérer des traitements asynchrones de manière efficace.
Grâce à NestJS, nous pouvons facilement mettre en place des workers qui traitent par lots les actions déclenchées par l'utilisateur, réduisant ainsi la charge sur les serveurs principaux. Cette approche optimise l'utilisation des ressources et améliore l'efficacité énergétique du site, tout en garantissant une expérience utilisateur fluide.
Règle de validation
Le nombre de traitements synchrones qui prennent plus d'une minute doit être inférieur ou égal à 0
Ressources économisées