- Architecture
- Université
- 2h00
💥 Domptez la complexité d’un tunnel de vente et retrouvez des tests lisibles
Date mercredi
Horaire 8h00 à 10h00
Salle Amphi B
Description
La refonte de l’étape du paiement de la billetterie Roland-Garros était critique. Mais à cause de la complexité des différents cas fonctionnels, je me suis retrouvé empêtré avec des tests peu lisibles et une implémentation difficile à suivre. Dans cet atelier, je vous propose de découvrir l’architecture événementielle que j’ai pu mettre en place, lors d’un refactoring guidé, basé sur deux patterns puissants : Command/CommandHandler et Event/EventListener. 🔧 Ce que vous apprendrez : - Structurer la logique métier avec Command/CommandHandler - Publier et consommer des événements métier pour une architecture extensible - Simplifier les tests unitaires en isolant les comportements - Construire un tunnel de vente maintenable et évolutif ⏱️ Déroulement : 30 min de présentation, 10 min de setup, 60 min de refactoring guidé, 10 min de Q&A 🎯 Public cible : dév backend avec un niveau intermédiaire minimum sur une stack Java/SpringBoot 🏁 Résultats : code refactoré, use case réutilisables et plus lisibles, réduction des cas de test
Orateur·ices
Thibaut Cantet
Thibaut est développeur depuis plus de 18 ans. Convaincu par les pratiques craft, il s’efforce de rendre le code le plus simple et agréable à travailler. Adepte de DDD, il aime parler design et architecture.
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