- Architecture
- Conférence
- Standard
- 55 min
Le parcours de Doctolib vers une plateforme de données médicales séparée du monolithe historique
Date mercredi
Horaire 8h00 Ă 8h55
Salle Amphi E
Description
MDP (pour Medical Data Platform) est le premier service Ă avoir Ă©tĂ© extrait du monolithe historique de Doctolib, marquant ainsi une transition architecturale vers une infrastructure davantage distribuĂ©e. Cette confĂ©rence dĂ©taille notre parcours de migration des donnĂ©es mĂ©dicales, oĂč la stabilitĂ© de l'environnement de production et lâexpĂ©rience utilisateur ont Ă©tĂ© des enjeux cruciaux. Cette migration nous a permis dâamĂ©liorer lâexpĂ©rience dĂ©veloppeur, de dĂ©coupler les donnĂ©es fonctionnelles des donnĂ©es mĂ©dicales et de mettre en place une structure de base de donnĂ©es unifiĂ©e pour les donnĂ©es mĂ©dicales saisies Ă la fois par les praticiens et les patients. Nous aborderons les choix techniques effectuĂ©s, les dĂ©fis organisationnels rencontrĂ©s liĂ©s Ă la mise en place de nouveaux processus de dĂ©ploiement, ainsi que les obstacles rencontrĂ©s sur « le terrain ». Cela inclut des incidents en production, des dĂ©bats sur la façon de valider la qualitĂ© des nouveaux services et plus globalement la transition vers la philosophie « You build it, you run it ». La prĂ©sentation propose un retour honnĂȘte sur les succĂšs et les Ă©checs rencontrĂ©s lors de cette migration, offrant des enseignements concrets aux Ă©quipes envisageant des changements architecturaux similaires.
Orateur·ices
Samuel Lukes
Je suis staff engineer chez Doctolib, avec un parcours entre le Royaume-Uni et la France. Jâai commencĂ© ma carriĂšre en travaillant sur le moteur de recherche des Pages Jaunes britanniques, puis jâai rejoint la BBC, oĂč jâai eu lâoccasion de contribuer Ă des projets de streaming vidĂ©o Ă grande Ă©chelle. Depuis mon arrivĂ©e chez Doctolib, je me consacre Ă la transformation numĂ©rique de la santĂ©âŻ: intĂ©gration de donnĂ©es mĂ©dicales, amĂ©lioration des parcours praticiens, et, ces deux derniĂšres annĂ©es, co-construction de la Medical Data Platform (MDP) dâabord en Rails puis en NodeJS/Nest, pour rĂ©pondre Ă des besoins de robustesse et de scalabilitĂ©. Jâinterviens rĂ©guliĂšrement en interne pour partager mon expĂ©rience lors dâateliers dâarchitecture ou de prĂ©sentations techniques, dans une dĂ©marche de transmission et de construction collective de la culture engineering.
Christopher Anciaux
Software engineer depuis environ 7 ans maintenant mais Ă©crivant du (mauvais) code depuis plus de 10 ans, j'ai commencĂ© mon parcours professionnel Ă Lille Ă l'ESN Open puis Enedis avant de rejoindre Doctolib en 2020. đšââïž J'y ai d'abord travaillĂ© pour amĂ©liorer le parcours d'accueil des praticiens, les imports et exports des donnĂ©es mĂ©dicales. Depuis environ 2 ans, nous avons participĂ© Ă la construction de MDP avec Sam Lukes, d'abord en crĂ©ant un engine Rails sĂ©parĂ© puis finalement en réécrivant le service en NodeJS avec Nest.
Actions rapides
Les sessions futures sur le mĂȘme thĂšme
- Architecture
- Conférence
Rejouer une partie, rejouer le systĂšme de la matrice : des replays de jeux vidĂ©o Ă lâevent sourcing
Dans la plupart des jeux vidĂ©o modernes, un âreplayâ nâest pas une vidĂ©o mais une simple liste dâĂ©vĂ©nements : les inputs des joueurs, quelques Ă©vĂ©nements systĂšme et un Ă©tat initial minimal. Pour revoir une partie, le moteur ne fait âqueâ tout rejouer dans lâordre et reconstruit ainsi lâintĂ©gralitĂ© de la session. đźđ CĂŽtĂ© backend, lâevent sourcing applique exactement la mĂȘme idĂ©e : au lieu de stocker uniquement lâĂ©tat courant, on enregistre la chronologie des dĂ©cisions mĂ©tier (events) qui ont menĂ© Ă cet Ă©tat. On peut alors âremonter le tempsâ pour dĂ©buguer un bug tordu, auditer un comportement Ă©trange, ou reconstruire un systĂšme sur une nouvelle architecture. Dans ce talk, on partira de cas concrets cĂŽtĂ© jeux (replays, rewind, killcams) pour expliquer pas Ă pas : - comment fonctionne un systĂšme de replay basĂ© sur un log dâĂ©vĂ©nements, - en quoi ce modĂšle diffĂšre dâune approche CRUD classique, - ce que lâevent sourcing reprend de cette idĂ©e pour nos SI. Je montrerai un mini-systĂšme de replay dans un petit jeu ainsi quâun exemple dâevent store cĂŽtĂ© backend (Java/TypeScript), sans masquer les limites : coĂ»t de relecture, complexitĂ©, tooling⊠đŻ Public cible : dĂ©vs backend / fullstack, architectes, curieux dâarchitecture qui aiment les mĂ©taphores vidĂ©oludiques đŸ Plan proposĂ© 1 - âUn replay, ce nâest pas une vidĂ©oâ Comment les jeux enregistrent une partie : log dâĂ©vĂ©nements + Ă©tat initial. DĂ©mo simple : rejouer une partie en rĂ©injectant les inputs dans une boucle de jeu. 2 -De la partie au systĂšme : introduction concrĂšte Ă lâevent sourcing ModĂšle CRUD vs modĂšle âflux dâĂ©vĂ©nements rejouĂ©sâ. Notions dâevent store, projection/lecture, relecture dâĂ©vĂ©nements. 3 - Cas dâusage rĂ©els : debug, audit, rĂ©silience Time-travel debugging, audit, reconstruction dâĂ©tat / migration. 4 - Limites, piĂšges et conseils pragmatiques CoĂ»t de la relecture, snapshots, complexitĂ© pour les Ă©quipes, tooling et quand ne PAS utiliser lâevent sourcing.
Mercredi 15h00 Ă 15h55 - Amphi E
- Architecture
- Conférence
Vous pensiez que la dette technique était le pire? Voici la dette de conception !
Dans nos mĂ©tiers, la dette technique est sans doute la chose la plus frustrante, Ă©prouvante et coriace contre laquelle nous devons lutter. Bien sĂ»r, il existe des bonnes pratiques : refactoriser, viser la simplicitĂ© avec KISS, Ă©viter de trop anticiper avec YAGNI afin de limiter cette dette au maximum. Et pourtant, on nây vient jamais vraiment Ă bout. Pire encore, elle continue de sâaccumuler mĂȘme lorsque nous les appliquons, comme une fatalitĂ©. Et si ces mĂȘmes bonnes pratiques ne faisaient parfois quâempirer le problĂšme au lieu de le rĂ©soudre ? La dette technique peut nâĂȘtre que la partie visible de quelque chose de plus profond : la dette de design accidentelle. Un problĂšme bien plus complexe, donnant lieu Ă des logiciels spaghettis et Ă des microservices en « monolithe distribuĂ© », dont nous sommes souvent Ă lâorigine sans mĂȘme nous en rendre compte. Dans cette confĂ©rence, nous explorerons les mĂ©canismes de la dette de design et ses impacts, consĂ©quents sur notre architecture, nos processus, notre organisation, et mĂȘme notre business. Ă travers des exemples concrets, nous verrons comment la dĂ©tecter, analyser sa profondeur et agir avant quâelle ne sâancre durablement.
Jeudi 8h30 Ă 9h25 - Amphi A
- Architecture
- Conférence
Cache-moi si tu peux : patterns et piĂšges du cache en production
"On va mettre un cache, ça ira plus vite." Cette phrase a dĂ©jĂ coĂ»tĂ© des nuits blanches Ă bien des Ă©quipes. Le cache est souvent introduit comme une "optimisation" rapide Ă mettre en place. En rĂ©alitĂ©, il transforme profondĂ©ment le comportement d'un systĂšme : cohĂ©rence Ă©ventuelle, donnĂ©es obsolĂštes, effets de bord distribuĂ©s... et bugs impossibles Ă reproduire. Aujourd'hui, ces mĂȘmes dĂ©fis rĂ©apparaissent dans les architectures intĂ©grant des LLMs, avec l'Ă©mergence de modĂšles comme le *semantic caching*. Partons ensemble pour un voyage pragmatique dans le monde du cache : - ce qu'est rĂ©ellement un cache (et ce qu'il n'est pas), - les principaux patterns de caching et leurs compromis, - les anti-patterns classiques qui transforment une application rapide en cauchemar opĂ©rationnel, - un arbre de dĂ©cision pour choisir la bonne stratĂ©gie. Cette session vous donnera les outils pour construire des systĂšmes rapides et prĂ©visibles, et vous aidera Ă ne plus jamais considĂ©rer le cache comme un simple dĂ©tail d'implĂ©mentation.
Jeudi 11h30 Ă 12h25 - Amphi B