• Architecture
  • Conférence
  • 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

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

    Du rate limiting technique à la plateforme API monétisée : notre retour d'expérience

    Fin 2025, nous avons mis en place un mécanisme de rate limiting sur nos APIs à l’aide de Spring Cloud Gateway. Début 2026, le business y voit une opportunité plus large : quotas journaliers, endpoints premium et facturation à l’usage. Nous avons du réagir et faire évoluer un mécanisme purement technique en une plateforme API beaucoup plus large : Gateway custom vs solution d’API Management sur étagère (Kong, Gravitee...) Quotas persistants vs limites court terme Gestion in-memory vs stockage Redis distribué Performance à 200 requêtes par seconde et 400k utilisateurs Observabilité interne vs exposition client Dans ce talk, nous décrirons la mise en place de notre rate limiting technique puis les dilemmes rencontrés en le transformant en plateforme API commercialisable

    Jeudi 14h00 à 14h55 - Amphi A