Temps réel et Live du Parisien

Amine Zaghdoudi
lesEchosLeParisien
Published in
3 min readOct 16, 2023

Dans l’univers du journalisme et de la communication, l’information doit souvent être diffusée en temps réel pour rester pertinente et captiver l’audience. Conscients de ce besoin impératif de livrer des actualités directes et immédiates, nous avons récemment développé un outil de diffusion en direct au sein du Parisien. Cet outil nous permet de présenter des informations en temps réel, qu’il s’agisse de reportages sur le terrain, d’interviews en direct ou de couverture d’événements en direct.

Au cœur de cette initiative se trouve la création d’une API qui facilite la communication instantanée entre notre équipe de journalistes sur le terrain et notre public. Dans cet article, nous allons plonger dans les détails de la mise en place de cette API en utilisant des technologies puissantes telles qu’AWS AppSync, Amazon DynamoDB et AWS CloudFormation.

Introduction à AWS AppSync, AWS Lambda et DynamoDB

Pour répondre à notre exigence de personnalisation des requêtes, nous avons fait le choix judicieux d’intégrer AWS Lambda en tant que source de données pour notre API. Les requêtes GraphQL personnalisées que nous avions nécessitaient une logique métier spécifique qui était mieux gérée par des fonctions Lambda. Cette décision a permis d’étendre considérablement les possibilités de requêtes tout en préservant la flexibilité de GraphQL.

Amazon DynamoDB a continué de jouer un rôle central en tant que source de données principale pour notre application. Cependant, avec l’utilisation d’AWS Lambda, nous avons pu mettre en place des requêtes et des mutations plus complexes qui allaient au-delà des limites de DynamoDB.

Par exemple, lorsque des questions en direct étaient postés, La lambda “LiveApiQuestionAppSyncFunction” a été appelé afin d’effectuer la mutation GraphQL “addQuestion” qui ajoutait instantanément le commentaire à la table DynamoDB.

Intégration avec Apollo Client

Du côté du front-end, notre équipe a choisi d’utiliser Apollo Client pour interagir de manière efficace avec les API GraphQL. Cette bibliothèque JavaScript facilite la gestion des requêtes et des mises à jour de données en temps réel, offrant ainsi une expérience utilisateur fluide et réactive.

Intégration d’Amazon Cognito pour la Gestion des Utilisateurs

La gestion des utilisateurs et de l’authentification est cruciale dans un environnement de diffusion en direct. Nous avons intégré Amazon Cognito, un service d’authentification et de gestion des utilisateurs d’AWS, pour sécuriser l’accès à notre application et permettre aux utilisateurs de s’authentifier en toute sécurité.

Défis liés au Cache Redis dans AWS AppSync

Une des problématiques que nous avons rencontrées était liée au cache Redis dans AWS AppSync. Bien que le cache améliore les performances, il peut parfois se comporter comme une “boîte noire” difficile à débuguer et il n’est pas possible de purger le cache par élement. Pour identifier et résoudre les problèmes de mise en cache qui peuvent survenir on était obligé de voir directement dans les logs Cloudwatch.

Utilisation d’AWS CloudFormation pour le déploiement

AWS CloudFormation est venu compléter notre architecture en permettant de déployer de manière cohérente et reproductible l’ensemble de notre infrastructure. Toutes les ressources nécessaires à notre application, y compris AppSync, DynamoDB, les rôles IAM et d’autres services, ont été décrites dans un modèle CloudFormation.

Conclusion

En conclusion, notre expérience de création d’un outil de diffusion en direct avec AWS AppSync, AWS Lambda, Amazon DynamoDB, Apollo Client, Amazon Cognito et AWS CloudFormation nous a permis de répondre efficacement à notre besoin d’articles en temps réel. Cette combinaison d’outils nous a donné la flexibilité nécessaire pour gérer des requêtes personnalisées, l’évolutivité pour faire face à une audience croissante, la sécurité grâce à l’authentification avec Amazon Cognito, et une expérience utilisateur réactive grâce à Apollo Client. Cependant, la gestion du cache Redis dans AWS AppSync reste un défi qu’il convient de prendre en compte lors du développement de solutions en temps réel.

--

--