JOURNAL DES DÉCISIONS DEC-002
Python plutôt que Node.js pour les moteurs de calcul
Entrée reconstruite à partir du dépôt. Les options listées ci-dessous sont celles que le code démontre. Elles ne prétendent pas décrire ce qui a été envisagé à l’époque, et les questions restées ouvertes sont écrites en fin de page.
Contexte
Le groupe a deux moteurs de calcul à écrire : l’empreinte carbone sur les scopes 1, 2 et 3, et l’analyse documentaire des standards ESRS.
L’interface était déjà en Next.js, donc en TypeScript. Écrire les moteurs dans le même langage aurait évité une deuxième plateforme d’exécution.
Un moteur de calcul de durabilité doit être testable ligne à ligne et rejouable sur un jeu de données connu, parce que son résultat sera contesté sur sa méthode.
Options envisagées
Décision
Les moteurs de calcul et d’analyse du groupe sont écrits en Python et exposés par une API séparée. L’interface reste en Next.js.
Raisonnement
- Technique
- Un moteur sans interface et sans base se teste sur des entrées connues et se rejoue à volonté. Le séparer de l’application le rend remplaçable sans toucher au reste.
- Réglementaire
- Un résultat de durabilité doit être reconstituable. Un moteur isolé, testé, dont les entrées et les sorties sont explicites, se défend devant un tiers.
- Économique
- Deux plateformes d’exécution à déployer et à surveiller au lieu d’une, contre un temps de développement du calcul plus court.
Compromis accepté
Deux langages, deux chaînes de dépendances, deux déploiements et deux façons de gérer les erreurs. Pour une personne seule, c’est le double de surface à tenir à jour.
DÉCISION · CODE · RÉSULTAT
- LA DÉCISION
Les moteurs de calcul et d’analyse du groupe sont écrits en Python et exposés par une API séparée. L’interface reste en Next.js.
- LE CODE QU’ELLE A PRODUIT
- FichierContrat des passerelles produit
apps/web/lib/ecosystem/gateways.ts - RouteRoute de santé de STRATA Scope
GET /health sur scope.esg-optimizer.fr - RouteRoute de santé d’ESG Optimizer
GET /health sur api.esg-optimizer.fr
- FichierContrat des passerelles produit
- LE RÉSULTAT OBSERVÉ
STRATA Scope et ESG Optimizer exposent chacun une API Python, dont la seule surface publique en lecture est une route de santé. Ces deux routes sont ce que ce cockpit interroge, et rien d’autre : le contrat est décrit dans apps/web/lib/ecosystem/gateways.ts.
Questions ouvertes
Ce que le dépôt ne démontre pas, et que seul Adama peut trancher. Elles sont écrites plutôt que comblées.
- La bascule a-t-elle coûté une réécriture, ou le moteur Node n’avait-il jamais dépassé le prototype ?
LE JOURNAL COMPLET
Toutes les décisions, au même format.
Elles se comparent : même gabarit, même vocabulaire, même exigence de trace.