#103 đ Migration architecture microfrontend & Concept d'idempotence des APIs
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 !
đ» Et, bien Ă©videmment, on se retrouvera Ă la fin des prĂ©sentations pour un apĂ©ro offert par notre sponsor fulll ! đ„°đ