Plan de contrôle

Klody Core

En prod PythonFastAPIMLXasyncio

Ce que c'est

Gateway MLX conscient de la RAM (budget 80 Go, éviction LRU, modèle épinglé), bus mémoire partagé, routeur d'intentions ReAct, journal d'usage et éval nocturne en 10 sections. Le « système nerveux » qui fédère tout l'écosystème.

La décision d'architecte

Scheduler hexagonal : logique pure (décisions) isolée des effets de bord (process, sockets). Nettoyage des requêtes en vol garanti par BackgroundTask (zéro fuite). Revue adversariale multi-agents avant le 1ᵉʳ commit : 10 problèmes confirmés sur 22. Depuis, un incident d'OOM a imposé un garde-fou qui mesure la RAM réellement libre au lieu de faire confiance au plan — et un redémarrage groupé de quatre services a appris la règle inverse : on relance service par service, jamais en lot. 295 tests.

Ce qui a mal tourné

Un OOM, parce que le gateway croyait savoir. Il tenait sa propre comptabilité : il savait ce qu'il avait chargé, donc il pensait connaître la mémoire libre. Le système savait autre chose — d'autres processus consommaient de la RAM dont le gateway ignorait l'existence. Le garde-fou ajouté depuis mesure la mémoire réellement libre au lieu de faire confiance au plan comptable. Il n'a jamais été retiré.

Un redémarrage groupé. Relancer quatre services d'un coup après une mise à jour a produit une ruée simultanée sur la mémoire. La règle inverse s'est imposée : service par service, jamais en lot. Ça paraît évident écrit ainsi ; ça ne l'était pas avant de le vivre.

Le rechargement d'un plist. Piège d'exploitation coûteux : recharger un service supervisé demande bootout puis bootstrap, pas kickstart — et le bootout est asynchrone. Enchaîner trop vite relance l'ancienne définition en croyant avoir appliqué la nouvelle.

Les chiffres

295tests sur l'ordonnanceur
80 Gobudget mémoire unique
10sections d'éval nocturne
~208 Gopoids redondants supprimés

Le code

Le scheduler, extrait en open source ↗ ↗

Compétences mobilisées

Projets liés

Vos données ne peuvent pas sortir ?

C'est exactement le problème que je résous. Un appel de 30 minutes suffit à cadrer un audit.