Skip to content

M25T4 - Déport de l'ingestion sur machines dédiées #269

Description

@MathRobin

Déporte l'exécution de l'ingestion sur des machines dédiées.

Contexte : les workflows d'ingestion GitHub Actions ont été supprimés (commit db1d0bf du 8 septembre 2026) parce que les exécutions étaient trop longues et trop coûteuses. Seul ci.yml subsiste. L'ingestion est aujourd'hui lancée à la main en local ; la cible retenue est un déport sur des machines Hetzner.

Action manuelle nécessaire : provisionnement et configuration de l'infrastructure.

Étapes :

  • Provisionner la ou les machines, y installer le runtime (Node.js, Yarn 4 via corepack) et déployer le dépôt.
  • Mettre en place l'ordonnancement des pipelines existants (ingest:an, ingest:an:partial, ingest:senat, ingest:maires, ingest:interests, ingest:press, ingest:photos, ingest:social-links, ingest:madada, ingest:decorations, ingest:factchecks, ingest:parrainages, ingest:rip, ingest:wikipedia) aux fréquences retenues, avec DATABASE_URL et les clés d'API correspondantes.
  • Prévoir la remontée des journaux et le signalement des échecs : aujourd'hui un pipeline qui échoue en local passe inaperçu.
  • Prévoir le déclenchement de la reconstruction du site lorsqu'une ingestion a modifié des données (detectChanges / writeChangeReport produisent déjà ce signal).
  • Documenter l'exploitation dans docs/, et mettre à jour CLAUDE.md, qui annonce encore « CI : GitHub Actions » sans distinguer tests et ingestion.

Optimisation à considérer au passage : les upserts d'ingestion s'exécutent ligne par ligne via le driver HTTP de Neon. Le renseignement de committees.an_uid a demandé 39 minutes pour 37 128 lignes, alors que le dédoublonnage de la même table, écrit en requêtes ensemblistes, a traité 78 000 lignes en une seconde. Une part significative du coût d'exécution tient à ce mode d'écriture, indépendamment de la machine.

Consigne systématique : journaliser le fil de pensée en commentaire du ticket, passer en "In Progress" au démarrage, revue des tests, revue de la doc, yarn format, "In Review" une fois terminé, puis commit commitizen + push.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions