[{"data":1,"prerenderedAt":715},["ShallowReactive",2],{"blog-post-\u002Fblogs\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures":3,"related-\u002Fblogs\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures":680},{"id":4,"title":5,"alt":6,"authors":7,"body":30,"date":663,"description":664,"extension":665,"image":666,"meta":667,"navigation":203,"ogImage":666,"path":668,"published":203,"reviewers":669,"seo":672,"stem":673,"tags":674,"__hash__":679},"blogs\u002Fblogs\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures\u002Findex.md","DevLille 2026 pt.3 : ce que le craft nous apprend sur nos architectures","L'équipe HoppR, une douzaine de personnes en sweats à capuche violets floqués du logo, pose souriante devant un stand au Devlille 2026",[8,14,19,25],{"id":9,"name":10,"image":11,"linkedin":12,"x":13},"33bf4462-cd38-80da-845c-c63b2fd024bf","Florian Hirson",".\u002Fassets\u002Fauthor-florian-hirson.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fflorian-hirson\u002F",null,{"id":15,"name":16,"image":17,"linkedin":18,"x":13},"368f4462-cd38-80fa-895c-c7ac1dda856a","Dhiaeddine Merad",".\u002Fassets\u002Fauthor-dhiaeddine-merad.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdhiaeddine-merad-9126b4320\u002F",{"id":20,"name":21,"image":22,"linkedin":23,"x":13,"bio":24},"380f4462-cd38-80f9-96f7-e5ad53ad4d1d","Emma Tardy",".\u002Fassets\u002Fauthor-emma-tardy.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Femma-tardy-36aa60140\u002F","Chargée de communication",{"id":26,"name":27,"image":28,"linkedin":29,"x":13},"320f4462-cd38-8071-8eb7-f90621a068a3","Marjorie Dieusart",".\u002Fassets\u002Fauthor-marjorie-dieusart.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmarjorie-dieusart\u002F",{"type":31,"value":32,"toc":654},"minimark",[33,51,54,59,83,90,93,96,99,102,105,108,112,131,137,140,143,159,168,348,351,354,358,377,383,386,392,395,398,414,418,437,443,446,455,472,483,486,490,509,512,515,534,537,540,544,563,569,572,575,578,581,587,590,593,599,608,614,617,621,624,629,650],[34,35,36,37,44,45,50],"p",{},"Dernière partie de nos retours du Devlille 2026 et cette fois-ci elle est consacrée au craft, à l’archi et au front end !  Vous pouvez retrouver la partie 1 ",[38,39,43],"a",{"href":40,"rel":41},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2026-06-29-quand-lia-rencontre-la-prod-retour-sur-les-talks-ia-du-devlille-2026-pt-1",[42],"nofollow","ici ","et la partie 2 ",[38,46,49],{"href":47,"rel":48},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2026-07-08-souverainete-eco-conception-notre-rex-devlille-2026-pt-2",[42],"là",".",[34,52,53],{},"On espère que vous apprécierez",[55,56,58],"h2",{"id":57},"concevons-nous-toujours-des-applications-pour-les-humains","Concevons-nous toujours des applications pour les humains ?",[34,60,61,65,66,65,73,65,76],{},[62,63,64],"em",{},"Par Johnathan Meunier & Julien Gaudet - 45 min -"," ",[38,67,70],{"href":68,"rel":69},"https:\u002F\u002Fdevlille.fr\u002Ftalk-page-85a34da9-8712-4c21-a242-c28af9345c46\u002F",[42],[62,71,72],{},"Abstract",[62,74,75],{},"-",[38,77,80],{"href":78,"rel":79},"https:\u002F\u002Fyoutu.be\u002FeiWp1WDnSto?si=wkdlydBAU4voocTT",[42],[62,81,82],{},"Captation",[34,84,85],{},[86,87],"img",{"alt":88,"src":89},"Jonathan & Julien sur la scène du Grand Théatre du grand palais dans le cadre du  DevLille 2026, l'un marchant près du pupitre, l'autre parlant au micro, devant un grand écran affichant du code HTML et des sous-titres en direct.","\u002Fcontent-assets\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures\u002Fassets\u002Fimg1.webp",[34,91,92],{},"Johnathan Meunier, staff engineer UI, et Julien Gaudet, front-end & Scrum Master ont ouvert la seconde journée avec une conférence à la fois philosophique et très ancrée dans le concret.",[34,94,95],{},"La question de fond : si les agents autonomes sont capables d'interagir avec nos interfaces à notre place, pour qui conçoit-on encore ces interfaces ? L'émergence du protocole MCP change les règles, des agents peuvent maintenant naviguer, interpréter et agir sur le web de façon indépendante.",[34,97,98],{},"Premier constat actionnable : une interface bien pensée pour l'accessibilité (sémantique HTML, ARIA labels) est aussi une interface que les agents peuvent utiliser facilement. Penser \"agent first\" devient le nouveau \"responsive first\", et les recherches web agentiques vont probablement privilégier les sites facilement consultables par des agents.",[34,100,101],{},"Un exemple frappant sur les limites actuelles : réserver des places de cinéma sur un plan de salle. Ce qui est trivial pour un humain (lire l'espace, comprendre ce qui est \"une bonne place\" selon le contexte, être en groupe, vouloir l'expérience immersive, vouloir être tranquille) est extraordinairement difficile pour un agent. Le paradoxe de Moravec en action : ce qui est simple pour l'homme est souvent le plus dur à automatiser.",[34,103,104],{},"Ils introduisent la notion de point de non-retour, doux (la dépendance émotionnelle et relationnelle à un outil) et dur (la singularité technologique, longtemps estimée à 2035-2045 et aujourd'hui ramenée à 2030 par certains experts). Des gouvernements au Pérou, en Bolivie et en Arménie ont déjà expérimenté des \"ministres IA\", le point doux n'est pas si théorique.",[34,106,107],{},"Leur conclusion : notre rôle de développeur évolue, de l'écriture de TypeScript et React vers la conception d'interfaces pour agents et l'écriture de prompts. Mais la responsabilité reste entière, c'est nous qui décidons ce qu'on délègue, et qui répondons de ce qui est produit.",[55,109,111],{"id":110},"ils-sont-fous-chez-tanstack-ils-ont-mis-une-db-dans-le-front","Ils sont fous chez TanStack, ils ont mis une DB dans le front !",[34,113,114,65,117,65,123,65,125],{},[62,115,116],{},"Par Lucas Audart & Delphin Aubin - 45 min -",[38,118,121],{"href":119,"rel":120},"https:\u002F\u002Fdevlille.fr\u002Ftalk-page-b7e84700-cea4-423e-a9ed-a2a01e690e4c\u002F",[42],[62,122,72],{},[62,124,75],{},[38,126,129],{"href":127,"rel":128},"https:\u002F\u002Fyoutu.be\u002FNos2DfIFoY8?si=SGQV0UNMdL7HAU8d",[42],[62,130,82],{},[34,132,133],{},[86,134],{"alt":135,"src":136},"Lucas et Delphin debout sur la scène Marie Curie au Grand Palais dans le cadre du DevLille 2026 face au public, devant un slide montrant les maquettes « Page liste Recettes » et « Page détail Recette ».","\u002Fcontent-assets\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures\u002Fassets\u002Fimg2.webp",[34,138,139],{},"Lucas Audart et Delphin Aubin ont présenté TanStack DB avec une analogie d'Astérix et Obélix bien filée : Panoramix doit gérer son stock d'ingrédients, décider quoi stocker à l'avance et quoi aller chercher à la demande, exactement le problème de la gestion de cache et de state côté client.",[34,141,142],{},"Le duo a d'abord retracé l'évolution de la gestion de données en front :",[144,145,146,150,153,156],"ul",{},[147,148,149],"li",{},"Le pattern de base : fetch + useState + loading + error = code verbeux et répétitif",[147,151,152],{},"Redux et les stores Flux : puissants mais complexes, beaucoup de couplage entre composants",[147,154,155],{},"TanStack Query : suppression du store, cache intelligent, synchronisation automatique",[147,157,158],{},"Et maintenant TanStack DB : une couche de base de données côté client",[34,160,161,162,167],{},"TanStack DB est en beta depuis juillet 2025, co-développé avec l'équipe d'ElectricSQL mais conçu pour fonctionner avec n'importe quel backend (REST, GraphQL, ou d'autres sync engines). Le concept : au lieu de renvoyer une réponse à une requête ponctuelle, le serveur maintient une connexion ouverte et pousse les diffs (différences) en temps réel via un ",[38,163,166],{"href":164,"rel":165},"https:\u002F\u002Ftanstack.com\u002Fdb\u002Flatest\u002Fdocs\u002Foverview#2-sync-engine",[42],"sync-engine",". Le client dispose alors d'une \"base de données locale\" réactive, avec une syntaxe de requête proche de SQL (collections, filtres, jointures, pagination) qui s'exécute côté client sur les données déjà chargées.",[169,170,175],"pre",{"className":171,"code":172,"language":173,"meta":174,"style":174},"language-typescript shiki shiki-themes github-dark-default","import { createCollection, liveQueryCollectionOptions, eq } from '@tanstack\u002Fdb'\n\nconst activeUsers = createCollection(liveQueryCollectionOptions({\n  query: (q) =>\n    q\n      .from({ user: usersCollection })\n      .where(({ user }) => eq(user.active, true))\n      .select(({ user }) => ({\n        id: user.id,\n        name: user.name,\n        email: user.email,\n      }))\n}))\n","typescript","",[176,177,178,198,205,231,250,256,267,299,318,324,330,336,342],"code",{"__ignoreMap":174},[179,180,183,187,191,194],"span",{"class":181,"line":182},"line",1,[179,184,186],{"class":185},"suJrU","import",[179,188,190],{"class":189},"sZEs4"," { createCollection, liveQueryCollectionOptions, eq } ",[179,192,193],{"class":185},"from",[179,195,197],{"class":196},"s9uIt"," '@tanstack\u002Fdb'\n",[179,199,201],{"class":181,"line":200},2,[179,202,204],{"emptyLinePlaceholder":203},true,"\n",[179,206,208,211,215,218,222,225,228],{"class":181,"line":207},3,[179,209,210],{"class":185},"const",[179,212,214],{"class":213},"sFSAA"," activeUsers",[179,216,217],{"class":185}," =",[179,219,221],{"class":220},"sc3cj"," createCollection",[179,223,224],{"class":189},"(",[179,226,227],{"class":220},"liveQueryCollectionOptions",[179,229,230],{"class":189},"({\n",[179,232,234,237,240,244,247],{"class":181,"line":233},4,[179,235,236],{"class":220},"  query",[179,238,239],{"class":189},": (",[179,241,243],{"class":242},"sQhOw","q",[179,245,246],{"class":189},") ",[179,248,249],{"class":185},"=>\n",[179,251,253],{"class":181,"line":252},5,[179,254,255],{"class":189},"    q\n",[179,257,259,262,264],{"class":181,"line":258},6,[179,260,261],{"class":189},"      .",[179,263,193],{"class":220},[179,265,266],{"class":189},"({ user: usersCollection })\n",[179,268,270,272,275,278,281,284,287,290,293,296],{"class":181,"line":269},7,[179,271,261],{"class":189},[179,273,274],{"class":220},"where",[179,276,277],{"class":189},"(({ ",[179,279,280],{"class":242},"user",[179,282,283],{"class":189}," }) ",[179,285,286],{"class":185},"=>",[179,288,289],{"class":220}," eq",[179,291,292],{"class":189},"(user.active, ",[179,294,295],{"class":213},"true",[179,297,298],{"class":189},"))\n",[179,300,302,304,307,309,311,313,315],{"class":181,"line":301},8,[179,303,261],{"class":189},[179,305,306],{"class":220},"select",[179,308,277],{"class":189},[179,310,280],{"class":242},[179,312,283],{"class":189},[179,314,286],{"class":185},[179,316,317],{"class":189}," ({\n",[179,319,321],{"class":181,"line":320},9,[179,322,323],{"class":189},"        id: user.id,\n",[179,325,327],{"class":181,"line":326},10,[179,328,329],{"class":189},"        name: user.name,\n",[179,331,333],{"class":181,"line":332},11,[179,334,335],{"class":189},"        email: user.email,\n",[179,337,339],{"class":181,"line":338},12,[179,340,341],{"class":189},"      }))\n",[179,343,345],{"class":181,"line":344},13,[179,346,347],{"class":189},"}))\n",[34,349,350],{},"Les avantages concrets : réactivité fine (seuls les composants concernés re-render), pagination et filtrage côté client sans aller-retour réseau, mutations simplifiées (plus d'invalidation de cache manuelle). La contrepartie assumée : le serveur renvoie toute la donnée au départ, ce qui peut être lourd selon les volumes, filtres et pagination côté serveur disparaissent au profit d'une gestion côté client.",[34,352,353],{},"La démo, une application de gestion de recettes et d'ingrédients pour le village gaulois, illustrait bien les cas d'usage. Une technologie encore jeune mais dont l'approche tranche vraiment avec les patterns habituels.",[55,355,357],{"id":356},"le-pattern-repository-chat-potté-du-ddd","Le pattern Repository, Chat Potté du DDD",[34,359,360,65,363,65,369,65,371],{},[62,361,362],{},"Par Sylvain Decout & Édouard Sihae - 45 min -",[38,364,367],{"href":365,"rel":366},"https:\u002F\u002Fdevlille.fr\u002Ftalk-page-f5533112-ecaf-4871-a3b6-b437383db70d\u002F",[42],[62,368,72],{},[62,370,75],{},[38,372,375],{"href":373,"rel":374},"https:\u002F\u002Fyoutu.be\u002FaCA9ouraKwY?si=bB5rZTUVaDAauHNb",[42],[62,376,82],{},[34,378,379],{},[86,380],{"alt":381,"src":382},"Sylvain et Edouart devant une salle comble, l'un au micro portant un pull PayFit, face à un diagramme reliant Caller, JPA Entity et Spring Data Repository.","\u002Fcontent-assets\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures\u002Fassets\u002Fimg3.webp",[34,384,385],{},"Le pattern Repository est l'un de ces concepts DDD qui flottent dans toutes les discussions d'architecture sans jamais être vraiment définis. Ce talk s'attaque à la démystification, exemples de code à l'appui.",[34,387,388,389,50],{},"La définition de travail : un Repository donne l'illusion d'une collection en mémoire. On passe l'entité en paramètre (ce n'est pas au Repository de deviner les éléments du domaine) et on n'abstrait pas à l'excès : ",[62,390,391],{},"never go full generic",[34,393,394],{},"La distinction critique à garder en tête : Repository au sens DDD n'est pas Spring Data Repository. Les deux portent le même nom, mais l'un modélise le domaine, l'autre est un outil technique de persistence. Les confondre, c'est mélanger les couches.",[34,396,397],{},"L'intérêt des agrégats : centraliser les règles métier plutôt que de les disperser dans l'application. Sans agrégat, les invariants du modèle s'éparpillent. Avec, la cohérence est garantie, au prix d'un découpage à réfléchir. Si un même besoin s'exprime dans deux contextes différents, deux agrégats distincts sont souvent préférables. Pas de vérité absolue : c'est un curseur entre petits et gros agrégats à ajuster selon les trade-offs.",[34,399,400,401,405,406,409,410,413],{},"Sur le testing : préférer un ",[402,403,404],"strong",{},"fake"," à un ",[402,407,408],{},"mock"," pour les repositories (tests moins verbeux, comportements cohérents, suite fiable). Exception : pour du ",[62,411,412],{},"fire and forget",", le pattern Repository est probablement superflu.",[55,415,417],{"id":416},"le-cdc-pour-ne-pas-dcd","Le CDC pour ne pas DCD",[34,419,420,65,423,65,429,65,431],{},[62,421,422],{},"Par Quentin Burg & Ludovic Dussart - 45 min -",[38,424,427],{"href":425,"rel":426},"https:\u002F\u002Fdevlille.fr\u002Ftalk-page-e1429ab5-5f7d-4be9-a90e-4b4c3aa81153\u002F",[42],[62,428,72],{},[62,430,75],{},[38,432,435],{"href":433,"rel":434},"https:\u002F\u002Fyoutu.be\u002FSo5kdY1A_HI?si=7T6ZKP8Wpw-nTQWw",[42],[62,436,82],{},[34,438,439],{},[86,440],{"alt":441,"src":442},"Quantin et Ludovic  en polo bleu Zenika présentent sur scène au DevLille, l'un au pupitre avec un ordinateur portable, l'autre à côté d'une table avec une console de jeux rétro.","\u002Fcontent-assets\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures\u002Fassets\u002Fimg4.webp",[34,444,445],{},"Le contexte de départ était le suivant. Une application de référencement produit héritée consommait un SaaS éditeur qui poussait ses données dans des topics Kafka. Cela représentait 10 millions de messages par semaine, 17 microservices déployés, 28 tables en base et du code Java sans tests. Un problème chronique s'ajoutait à cette architecture, puisque la qualité de la donnée était mauvaise et les interruptions de production fréquentes. La solution de l'époque consistait à arrêter la production plusieurs heures chaque semaine pour resynchroniser intégralement les données depuis l'éditeur, et cette opération se répétait toutes les semaines.",[34,447,448,449,454],{},"Leur titre jouait sur les acronymes, avec le CDC (",[38,450,453],{"href":451,"rel":452},"https:\u002F\u002Fcloud.google.com\u002Fdiscover\u002Fwhat-is-change-data-capture?hl=fr",[42],"Change Data Capture",") pour ne pas DCD (décéder). L'image collait bien à la situation qu'ils avaient vécue.",[34,456,457,458,465,466,471],{},"La solution adoptée reposait sur ",[38,459,462],{"href":460,"rel":461},"https:\u002F\u002Fdebezium.io\u002F",[42],[402,463,464],{},"Debezium"," via ",[38,467,470],{"href":468,"rel":469},"https:\u002F\u002Fdocs.confluent.io\u002Fplatform\u002Fcurrent\u002Fconnect\u002Findex.html",[42],"Kafka Connect",". Le principe du CDC consiste à lire directement les journaux de transaction de la base de données, le write-ahead log, pour capturer tous les changements au fil de l'eau, qu'il s'agisse d'insertions, de mises à jour ou de suppressions, puis à les diffuser dans des topics Kafka. Cette approche supprime le besoin de requêter l'éditeur en batch, élimine les désynchronisations et met fin aux arrêts de production.",[34,473,474,475,478,479,482],{},"Ils ont présenté une astuce de configuration intéressante. Plutôt que de créer un topic Kafka par table, ce qui aurait généré 28 topics à maintenir dans plusieurs environnements, ils utilisent le transformateur Kafka Connect ",[176,476,477],{},"reroute"," pour tout déverser dans un seul topic ",[176,480,481],{},"change-data-capture-topic",". Le nom de la table sert alors de clé du message afin de permettre le routing côté consommateurs.",[34,484,485],{},"La démo en live s'appuyait sur un mini réseau social Pokémon pour illustrer le problème de concurrence entre services et la solution CDC. Ce choix rendait concret un sujet qui aurait pu rester très abstrait.",[55,487,489],{"id":488},"moderniser-sans-tout-reconstruire-la-stratégie-du-micro-frontend","Moderniser sans tout reconstruire : la stratégie du Micro-Frontend",[34,491,492,65,495,65,501,65,503],{},[62,493,494],{},"Par Laurine Le Net - 45 min -",[38,496,499],{"href":497,"rel":498},"https:\u002F\u002Fdevlille.fr\u002Ftalk-page-6c9c2209-0b8c-428a-b184-5ac0176503a6\u002F",[42],[62,500,72],{},[62,502,75],{},[38,504,507],{"href":505,"rel":506},"https:\u002F\u002Fyoutu.be\u002FB8gyMt23gX0?si=mn4R6He287dBtBOg",[42],[62,508,82],{},[34,510,511],{},"Laurine Le Net, développeuse full stack, a raconté l'histoire, très reconnaissable, d'une application Angular surnommée \"Mamie JS\". Cette application était un mélange d'AngularJS de 2011 et d'Angular 15, coincée par des milliers de dépendances incompatibles qui empêchaient toute migration. Chaque tentative de modernisation se heurtait à des problèmes en cascade, au point qu'il fallait renoncer aux Signals et jongler avec ui-router.",[34,513,514],{},"Son objectif était de faire cohabiter le legacy et du code Angular 21 moderne sans tout reconstruire, et sans que l'utilisateur s'en aperçoive. L'illusion devait être parfaite.",[34,516,517,518,521,522,525,526,529,530,533],{},"La solution reposait sur les ",[402,519,520],{},"micro-frontends"," avec ",[402,523,524],{},"Native Federation",". Le principe général est simple. Une application ",[402,527,528],{},"shell"," orchestre l'ensemble et sait où trouver les applications ",[402,531,532],{},"remote",", c'est-à-dire les micro-frontends. Chaque remote expose ses composants via un fichier de manifest. Le shell charge dynamiquement ce dont il a besoin, uniquement quand l'utilisateur le demande. Laurine a proposé l'analogie d'un food court où chaque stand est indépendant mais partage le même espace.",[34,535,536],{},"Pour Angular, deux solutions principales existent. La première est Native Federation, basée sur les Import Maps du navigateur. Elle est native et légère, mais impose une gouvernance forte des versions Angular. La seconde est Module Federation, qui passe par Webpack. Elle se montre plus souple sur les versions, mais reste plus lourde. Laurine a choisi Native Federation, bien adaptée à un contexte où les deux équipes peuvent aligner leurs versions.",[34,538,539],{},"La question du routing est centrale et souvent sous-estimée. Trois approches sont possibles. Dans la première, le shell possède toutes les routes, ce qui est simple mais prive les remotes de leur autonomie. Dans la deuxième, les remotes exposent leurs propres routes, ce qui les rend indépendants mais crée un comportement différent selon qu'on les lance seuls ou via le shell. Dans la troisième, chaque remote expose deux fichiers de routes, une approche flexible mais complexe à maintenir. Laurine a résumé le dilemme avec une honnêteté appréciable en soulignant qu'on cherche à avoir le beurre et l'argent du beurre, et que réunir les deux reste globalement compliqué.",[55,541,543],{"id":542},"noms-de-domaines-la-grande-histoire-des-petites-extensions","Noms de domaines : la grande histoire des petites extensions",[34,545,546,65,549,65,555,65,557],{},[62,547,548],{},"Par Benoit Masson et Théo Bougé - 45 min -",[38,550,553],{"href":551,"rel":552},"https:\u002F\u002Fdevlille.fr\u002Ftalk-page-afdf14b2-f86a-4a92-b9ec-62a6d548837b\u002F",[42],[62,554,72],{},[62,556,75],{},[38,558,561],{"href":559,"rel":560},"https:\u002F\u002Fyoutu.be\u002FMf5QwkUyxkA?si=NIE5zSjd7zELa1ZH",[42],[62,562,82],{},[34,564,565],{},[86,566],{"alt":567,"src":568},"Benoit et Théo présentant sur la scène Marie Curie du Grand Palais  au DevLille, l'un debout près d'une table haute, l'autre au pupitre.","\u002Fcontent-assets\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures\u002Fassets\u002Fimg5.webp",[34,570,571],{},"Savez-vous vraiment ce qui se cache derrière un .com, un .fr ou un .tech, ces quelques caractères que l'on tape machinalement plusieurs fois par jour sans jamais y prêter la moindre attention ? C'est précisément à cette question, que Benoit et Théo ont choisi de répondre, en nous proposant un retour aux fondamentaux.",[34,573,574],{},"Leur point de départ, c'est la grande famille des extensions, que l'on regroupe en deux catégories principales, avec d'un côté les ccTLD (country code top-level domains), ces extensions rattachées à un territoire comme le .fr, le .uk ou le .us, et de l'autre les gTLD (generic top-level domains), plus génériques, à l'image du .com ou du .tech. À ces deux grandes familles s'ajoute une catégorie nettement plus confidentielle, celle des sTLD, des extensions sponsorisées dont l'usage est strictement réglementé et réservé à certaines communautés, comme le .gov pour les institutions gouvernementales américaines ou le .edu pour les établissements d'enseignement.",[34,576,577],{},"Derrière toute cette organisation se trouve un acteur central, l'ICANN (Internet Corporation for Assigned Names and Numbers), qui supervise à la fois la création de nouvelles extensions ainsi que l'encadrement de leur vente et de leur utilisation. Et si, sur le papier, à peu près n'importe quelle organisation peut déposer une demande pour créer sa propre extension, la réalité se révèle nettement plus dissuasive, puisqu'il faut constituer un dossier conséquent et s'acquitter d'un ticket d'entrée qui dépasse aujourd'hui largement les 200 000 dollars, avec très précisément des frais d'évaluation fixés à 227 000 dollars par dossier pour le tour d'application ouvert en 2026, contre 185 000 dollars lors du précédent tour de 2012, le tout pour une procédure dont le déroulement complet peut s'étaler sur plusieurs années.",[34,579,580],{},"Pour les noms de domaine de notre quotidien, le circuit reste heureusement bien plus accessible, même s'il s'avère plus orchestré qu'on ne l'imagine spontanément, car lorsque l'on achète un nom de domaine, on s'adresse en réalité à un bureau d'enregistrement, lequel dialogue avec le backend technique, l'ensemble remontant ensuite jusqu'à l'ICANN afin de vérifier à la fois la disponibilité du couple nom et extension et sa parfaite conformité aux règles en vigueur.",[34,582,583],{},[86,584],{"alt":585,"src":586},"Schéma montrant les interactions entre l'ICANN, le Registre (backend technique), le Bureau d'enregistrement (OVHcloud) et le Client (titulaire). Des flèches bidirectionnelles relient le Bureau d'enregistrement au Client, au Registre et à l'ICANN, tandis que le Registre est également connecté à l'ICANN","\u002Fcontent-assets\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures\u002Fassets\u002Fimg6.webp",[34,588,589],{},"Là où le talk devient franchement étonnant, c'est au moment où Benoit et Théo nous rappellent que tout cela n'a rien d'anecdotique sur le plan économique, puisque l'achat et la revente de noms de domaine et de leurs extensions représentent un marché de plusieurs milliards de dollars à l'échelle mondiale, un marché dont certains pays tirent un profit considérable grâce à leur ccTLD, et qui obéit, comme n'importe quel bien, aux lois de l'offre et de la demande, mais aussi, fait nettement plus surprenant, aux effets de mode.",[34,591,592],{},"L'illustration la plus parlante reste évidemment celle de l'intelligence artificielle, dont l'engouement planétaire s'est cristallisé autour de l'extension .ai, que l'on pourrait spontanément croire générique alors qu'il s'agit, savoureuse ironie de l'histoire, du ccTLD d'Anguilla, un minuscule territoire britannique des Caraïbes peuplé d'à peine quinze mille habitants, à qui ce code à deux lettres avait justement été attribué de façon totalement fortuite dans les années 1990 par l'ICANN.",[34,594,595],{},[86,596],{"alt":597,"src":598},"Carte des Caraïbes avec un repère rouge positionné sur la micro nation d’Anguilla, entre les Grandes Antilles et la côte du Guyana.","\u002Fcontent-assets\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures\u002Fassets\u002Fimg7.webp",[34,600,601,602,607],{},"Le résultat de cette heureuse coïncidence dépasse presque l'entendement, car depuis le lancement de ChatGPT en novembre 2022, les enregistrements de .ai se sont envolés, au point que, selon le ",[38,603,606],{"href":604,"rel":605},"https:\u002F\u002Fwww.imf.org\u002Fen\u002Fnews\u002Farticles\u002F2024\u002F05\u002F15\u002Fcf-an-ai-powered-boost-to-anguillas-revenues",[42],"FMI",", ces revenus ont rapporté environ 39 millions de dollars en 2024, soit près d'un quart des recettes totales du gouvernement, ce qui rivalise désormais avec le tourisme dans le financement de l'île.",[34,609,610],{},[86,611],{"alt":612,"src":613},"Graphique intitulé « .ai Domain Registrations & Government Revenue ». Axe horizontal : années 2019 à 2025 environ. Axe vertical gauche (bleu) : « registrations per day » (0 à ~5000). Une courbe bleue montre des enregistrements quotidiens faibles et stables jusqu’à fin 2022, puis une hausse nette et durable, avec des fluctuations et un pic proche de 5000 vers 2025. Axe vertical droit (orange) : « revenue (million US) » (0 à 100). Une courbe orange en pointillés augmente progressivement avant 2022 puis accélère après 2023 jusqu’à atteindre environ 90-100 M en 2025. Une ligne verticale en pointillés marque « Launch ChatGPT (Nov 2022) », indiquant que l’essor des enregistrements et des revenus intervient après cette date.","\u002Fcontent-assets\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures\u002Fassets\u002Fimg8.webp",[34,615,616],{},"En bref, un talk culture tech comme on les apprécie, de ceux que l'on a fâcheusement tendance à négliger une fois absorbés par nos sprints et nos backlogs, mais qui nous rappelle avec une certaine malice qu'il suffit parfois de deux lettres bien placées pour rebattre entièrement les cartes de l'économie d'un pays tout entier.",[55,618,620],{"id":619},"conclusion","Conclusion",[34,622,623],{},"C’est la fin de notre  retour sur le Devlille on espère que ça vous aura plus, en tout cas on a hâte de l’année prochaine !",[34,625,626],{},[402,627,628],{},"Pour aller plus loin :",[144,630,631,641],{},[147,632,633,634,640],{},"Vous avez manqué le premier volet et le deuxième volet  ? Retrouvez notre ",[38,635,637],{"href":40,"rel":636},[42],[402,638,639],{},"REX DevLille 2026 sur l'intelligence artificielle","  et …",[147,642,643,644,649],{},"Suivez ",[38,645,648],{"href":646,"rel":647},"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fhopprtech\u002F?viewAsMember=true",[42],"HoppR sur LinkedIn"," pour ne rien manquer de nos prochains contenus.",[651,652,653],"style",{},"html pre.shiki code .suJrU, html code.shiki .suJrU{--shiki-default:#FF7B72}html pre.shiki code .sZEs4, html code.shiki .sZEs4{--shiki-default:#E6EDF3}html pre.shiki code .s9uIt, html code.shiki .s9uIt{--shiki-default:#A5D6FF}html pre.shiki code .sFSAA, html code.shiki .sFSAA{--shiki-default:#79C0FF}html pre.shiki code .sc3cj, html code.shiki .sc3cj{--shiki-default:#D2A8FF}html pre.shiki code .sQhOw, html code.shiki .sQhOw{--shiki-default:#FFA657}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":174,"searchDepth":200,"depth":200,"links":655},[656,657,658,659,660,661,662],{"id":57,"depth":200,"text":58},{"id":110,"depth":200,"text":111},{"id":356,"depth":200,"text":357},{"id":416,"depth":200,"text":417},{"id":488,"depth":200,"text":489},{"id":542,"depth":200,"text":543},{"id":619,"depth":200,"text":620},"2026-07-17T07:53:47.656Z","Dernière partie de nos retours du Devlille 2026 et cette fois-ci elle est consacrée au craft, à l’archi et au front end !  Vous pouvez retrouver la partie 1 ici et la partie 2 là.   On espère que vo","md",".\u002Fassets\u002Fcover-image.webp",{},"\u002Fblogs\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures",[670],{"id":9,"name":10,"image":671,"linkedin":12,"x":13},".\u002Fassets\u002Freviewer-florian-hirson.webp",{"title":5,"description":664},"blogs\u002F2026-07-17-devlille-2026-pt3-ce-que-le-craft-nous-apprend-sur-nos-architectures\u002Findex",[675,676,677,678],"craft","événement","devlille","2026","p0eUh_CnHkIwYMdwfpZb5cKOIoExaUfwlaNMTOAL-6M",[681,689,698,708],{"path":682,"title":683,"image":684,"date":685,"tags":686},"\u002Fblogs\u002F2026-06-29-quand-lia-rencontre-la-prod-retour-sur-les-talks-ia-du-devlille-2026-pt-1","Quand l'IA rencontre la prod : retour sur les talks IA du DevLille 2026 (Pt 1)","\u002Fcontent-assets\u002F2026-06-29-quand-lia-rencontre-la-prod-retour-sur-les-talks-ia-du-devlille-2026-pt-1\u002Fassets\u002Fcover-image.webp","29 juin 2026",[678,676,687,688,677,675],"veille tech","ia",{"path":690,"title":691,"image":692,"date":693,"tags":694},"\u002Fblogs\u002F2026-07-08-souverainete-eco-conception-notre-rex-devlille-2026-pt-2","Souveraineté & éco-conception : notre REX DevLille 2026 (Pt 2)","\u002Fcontent-assets\u002F2026-07-08-souverainete-eco-conception-notre-rex-devlille-2026-pt-2\u002Fassets\u002Fcover-image.webp","8 juillet 2026",[695,678,696,687,676,677,697],"rex","green","cloud-platform",{"path":699,"title":700,"image":701,"date":702,"tags":703},"\u002Fblogs\u002F2026-06-23-le-vert-ne-suffit-pas-3-facons-de-douter-de-son-code","Le vert ne suffit pas : 3 façons de douter de son code","\u002Fcontent-assets\u002F2026-06-23-le-vert-ne-suffit-pas-3-facons-de-douter-de-son-code\u002Fassets\u002Fcover-image.webp","23 juin 2026",[675,704,705,706,695,707,676,678,687],"test","testing","java","kotlin",{"path":709,"title":710,"image":711,"date":712,"tags":713},"\u002Fblogs\u002F2026-05-21-lyon-craft-2026-22","Lyon Craft 2026 2\u002F2","\u002Fcontent-assets\u002F2026-05-21-lyon-craft-2026-22\u002Fassets\u002Fcover-image.webp","21 mai 2026",[676,678,675,687,714],"lyoncraft",1784274933231]