Skip to content

Architecture API-centrique

À mesure que le projet s'est étendu (multiples opérateurs, déclenchements d'ETL distants, exports métier réguliers), tous les clients passent par l'API REST (electricore/api/) : bot Telegram, scheduler ETL, futurs notebooks Marimo, intégrations externes. DuckDB et les pipelines Polars (core/, ERP-agnostiques depuis ADR-0016), plus les adaptateurs ERP (integrations/<erp>/, p. ex. integrations/odoo/), sont des composants internes consommés via l'API, pas directement.

Conséquences

  • Notebooks : état transitoire. Aujourd'hui notebooks/ importe encore directement les pipelines et lit la base DuckDB en local. C'est une dette assumée — l'objectif est qu'ils migrent à terme vers le client HTTP. Drivers de la migration : (1) éliminer la synchronisation manuelle de la base DuckDB sur les postes de travail, (2) éviter la dérive entre logique des endpoints et requêtes ad-hoc des notebooks, (3) garder les données Enedis sensibles côté serveur.
  • L'API est un contrat. Toute évolution d'endpoint impacte au moins le bot et le scheduler ; les changements cassants nécessitent une coordination.
  • Pas d'accès direct DuckDB depuis le bot. Le bot ne connaît pas la structure du stockage ; toute requête passe par un endpoint.