Four
/[fuʁ]/n.m.Origine
Métaphore artisanale et industrielle : l'endroit clos et chauffé où l'on dépose la pâte crue (le code source et ses dépendances) pour en sortir le pain cuit (l'artefact exécutable autonome .output). Le terme refuse le jargon abstrait de runner CI/CD ou de build farm pour ancrer le geste matériel : on prépare, on enfourne, on cuit, et on défourne.
Définition
L'instance de compilation distante dédiée à la cuisson lourde des applications Nuxt et Node.js hors de la machine de travail et hors de la Mothership. Le Four absorbe les pics d'allocation CPU et mémoire générés par la construction des bundles de production (pnpm build), protégeant ainsi le vaisseau central et les sessions de développement de tout gel ou ralentissement matériel. Concrètement, le Four de Synedre réside sur le serveur M1 sous un wrapper dédié (four-wrapper.sh) : il reçoit l'arborescence source par transfert chiffré, acquiert dynamiquement l'un des slots de cuisson disponibles (sémaphore multi-slots plafonné à deux compilations simultanées), applique une priorité système abaissée (nice -n 10) pour préserver les préproductions colocataires, et sérialise strictement les demandes issues d'un même tenant (.four.<tenant>.lock). Une fois la cuisson achevée, l'archive autonome .output est récupérée par le script de déploiement et immédiatement purgée de l'hôte distant. À ne pas confondre avec un runner cloud externe (GitHub Actions, CircleCI) qui dépend d'infrastructures tierces et expose le code à des dépendances réseau hors de contrôle : le Four est un composant interne, souverain et sans abonnement récurrent. Ni avec la Mothership (VPS4), qui gouverne et orchestre mais ne doit jamais cuire les bundles sous peine de saturer ses vCPU. Où le terme s'applique réellement : scripts bin/four/four-wrapper.sh, bin/four/four-m1-setup.sh, façade de test synedre/tests/test_deploy_four.py, déploiements préprod et ship de CodeMyShop.
Exemple
Lors d'un déploiement simultané du core CodeMyShop et d'un site client, deux sessions distinctes invoquent la procédure de cuisson. Le wrapper du Four attribue le slot 1/2 au premier et le slot 2/2 au second sur M1. Les deux compilations tournent en parallèle sans se perturber, sous priorité régulée. Si une troisième demande survient avant la fin, elle attend la libération d'un slot sans saturer la RAM de la machine.