- Architecture
- Conférence
- Introduction
- 55 min
Rejouer une partie, rejouer le systĂšme de la matrice : des replays de jeux vidĂ©o Ă lâevent sourcing
Date mercredi
Horaire 15h00 Ă 15h55
Salle Amphi E
Description
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.
Orateur·ices
Pierre Fervel
DĂ©veloppeur fullstack senior & game dev Fullstack avec 10+ ans d'expĂ©rience : Java Spring Boot, Angular/TypeScript. Game dev passionnĂ© : Godot (C#/GDScript), game jams rĂ©guliĂšres (Global Game Jam, Ludum Dare). ConfĂ©rencier : DevFest Strasbourg, BreizhCamp. Talks internes Mission : lier expertise pro et passion jeux vidĂ©o pour des projets et des architectures rĂ©silientes sous pression đźđ»
Actions rapides
Les sessions futures sur le mĂȘme thĂšme
- 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
- 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