LyonJS

#103 🚀 Migration architecture microfrontend & Concept d'idempotence des APIs

Wednesday 16 april 2025 Ă  17:00

Rejoignez-nous Ă  l'INSA Lyon le 16 avril pour notre 103ᔉ meetup ! 🎉

Pour la premiĂšre fois, un Ă©vĂ©nement LyonJS est sponsorisĂ© par Fulll, une vĂ©ritable pĂ©pite logicielle nĂ©e de la fusion de trois Ă©diteurs, au service des experts-comptables. ✹

Et ce n’est pas tout ! Nous avons Ă©galement la chance d’ĂȘtre accueillis par l’INSA Lyon, ce qui nous permettra de vous recevoir dans d'excellentes conditions. Un immense merci Ă  eux ! 🙌

📍Insa TĂ©lĂ©communication, BĂątiment Hedy Lamarr, 6 Av. des Arts, 69100 Villeurbanne

🆓 L'Ă©vĂ©nement est gratuit ! ✍ Pensez Ă  vous inscrire ici !

📣 TALK 1 / Refondre sans tout casser : notre migration vers une architecture microfrontend

Chez Fulll, notre stack front repose sur plus de 20 applications React autonomes, rĂ©parties par sous-domaines. Ce dĂ©coupage favorisait l’isolation et l’ownership organisationnel, mais posait deux problĂšmes majeurs :

  • UX : une navigation transverse frustrante pour les utilisateurs, avec perte du layout et des contextes partagĂ©s ;
  • DX : un enfer de dĂ©pendances transverses Ă  maintenir Ă  jour dans chaque app.

Une nouvelle architecture

Nous avons repensé notre architecture en adoptant une approche microfrontend basée sur des Web Components, avec un Shell central et des Remotes chargées dynamiquement au runtime.

Ce que vous découvrirez dans ce talk

  • Ce qui se cache derriĂšre ce buzzword microfrontend ;
  • Pourquoi pas de Module Federation ?
  • Les motivations techniques et fonctionnelles derriĂšre cette refonte ;
  • Comment nous avons migrĂ© progressivement nos apps avec un minimum de disruption (double run, stratĂ©gie de transition) ;
  • Nos choix d’outillage : Vite, Shadow DOM, custom events, librairies maison pour la communication inter-app ;
  • Les galĂšres rencontrĂ©es : fonts, librairies tierces, styles, contraintes du Shadow DOM via les dĂ©pendances ;
  • Les leçons tirĂ©es de cette aventure.

Avantages

  • PossibilitĂ© d’utiliser des technos diffĂ©rentes au sein d’une mĂȘme interface (React, Vue, 
) ;
  • Architecture permettant l’isolation des fonctionnalitĂ©s et des produits.

Inconvénients

  • CommunautĂ© faible et peu de ressources ;
  • Le Shadow DOM reste un concept assez complexe Ă  maĂźtriser, surtout sans pratique.

💡Spoiler : on a encore du chemin, mais la navigation est dĂ©jĂ  bien plus fluide — et notre DX a clairement gagnĂ© en sĂ©rĂ©nitĂ© ! ✹

Nicolas Lefebvre & Maël Martin

📣 TALK 2 / Rendre ses API idempotentes avec NestJS

Il y a un concept frĂ©quemment ignorĂ© des dĂ©veloppeurs quand ils architecturent leurs API : l'idempotence ! Le principe : si une requĂȘte est exĂ©cutĂ©e plusieurs fois, elle aura toujours le mĂȘme effet. Par exemple, une commande ne sera crĂ©Ă©e qu'une seule fois, mĂȘme si la requĂȘte est appelĂ©e en boucle.

C'est vraiment utile ? Oui ! Parce qu'en cas d'erreur de rĂ©seau, de proxy, de systĂšme, etc
 on peut rĂ©essayer la requĂȘte sans inquiĂ©tude, la commande ne sera pas crĂ©Ă©e plusieurs fois.

Ce talk aborde ce concept dans sa thĂ©orie mais prĂ©sente aussi un cas pratique. Vous pourrez voir une codebase NestJS Ă©voluer en live pour qu'elle devienne rĂ©ellement indempotent. Vous n'utilisez pas NestJS ? C'est pas grave, ce framework n'est qu'un support de prĂ©sentation, ici on va tous parler le mĂȘme langage, ou plutĂŽt le mĂȘme protocole : HTTP !

Johann Pardanaud

đŸ» Et, bien Ă©videmment, on se retrouvera Ă  la fin des prĂ©sentations pour un apĂ©ro offert par notre sponsor fulll ! đŸ„°đŸŽ

Les images