Quand ne pas utiliser Mélodium
Tout outil a des limites, et on vous les indiquer nous-mêmes plutôt que de vous laisser les découvrir.
Votre valeur tient à une chaîne d’outils très spécifique et peu portable
Si quatre-vingt-dix pour cent de votre programme consiste à appeler l’outillage propre d’un écosystème, une intégration profonde dans un framework particulier, un SDK propriétaire, un système de build que seul cet écosystème comprend, utilisez le langage natif de cet écosystème. Appeler un processus ou un service depuis Mélodium fonctionnera, mais ça ne remplace pas le fait d’être dans l’écosystème.
Ce n’est pas une affirmation générale sur l’apprentissage automatique ou le traitement audio. L’origine de
Mélodium, c’est l’analyse de signal : le langage vient d’un travail d’analyse audio massive à l’UQAM, conçu
justement pour faire tourner les mêmes routines sur des machines aux capacités très différentes.
Les modèles dans ml/models, et les paquets audio et record existent parce que c’est une cible réelle.
La frontière est plus étroite que « IA » ou « audio » : elle porte sur la part de votre valeur qui tient aux idiomes propres d’un écosystème, par rapport
à la part qui est de l’orchestration, des entrées-sorties, et de la connexion entre choses.
Mélodium lui-même n’enferme pas dans une plateforme courante : au-delà de x86_64, aarch64, i686 et WebAssembly sur Linux, macOS et Windows, le moteur ne contient presque aucun code spécifique à un système, il repose sur les abstractions de Rust. Cette portée s’étend à des architectures processeur plus rares, RISC-V, s390x, PowerPC, SPARC, et à des systèmes d’exploitation plus rares, Solaris, z/OS, AIX, Redox OS, sans adaptation majeure, une portabilité qui remonte à son origine sur deux supercalculateurs aux architectures radicalement différentes.
Vous êtes seul·e à maintenir un seul script
Deux situations différentes ici, qu’il vaut la peine de séparer.
- Si le script existe déjà et fonctionne, la façon la plus rapide de voir si Mélodium aide n’est pas une réécriture : encapsulez la logique existante dans un seul traitement, pour que ses entrées, ses sorties et ses effets de bord deviennent explicites et isolés, sans toucher à ce qu’il y a dedans. Ça vaut souvent le coup même si rien d’autre ne change.
- Si rien n’existe encore et que vous partez d’une page blanche, Mélodium est un langage comme un autre pour un script isolé : pas pire, pas forcément meilleur non plus. La structure typée et décomposée qu’il impose se rentabilise quand le script doit grandir, être partagé, ou passer sur plusieurs machines.
Vous avez besoin dès aujourd’hui d’une interface opérationnelle détaillée par tâche
L’observabilité distribuée est aujourd’hui plus légère qu’un ordonnanceur mature. C’est un manque connu, sur lequel nous travaillons : une vue tableau de bord par exécution est déjà conçue dans le modèle de données de la plateforme et n’attend plus que le rendu, voir la feuille de route de Cadence.CI . Si une chronologie détaillée par tâche est une exigence dure dès maintenant, parlez-nous de votre usage précis. On préfère comprendre ce qu’est « bien fait » selon vous avant de le construire.
Votre pipeline CI repose surtout sur des actions tierces d’une marketplace
Adopter Mélodium pour votre CI veut dire réécrire en une heure ce qu’une action de marketplace existante vous donnait en une ligne. Pour un pipeline assemblé surtout à partir d’actions, ce calcul ne joue pas en faveur d’une réécriture aujourd’hui. Cependant si certaines de vos étapes sont coûteuses, sur mesure, ou difficiles à maintenir ou utiliser, c’est un bon point de départ, qui vaut un examen. Mélodium ne requiert pas d’être l’élément central de vos pipelines, et peut n’être qu’un élément parmi les autres, améliorant votre stack existante.
Nous pensons aussi que les marketplaces ont un coût rarement chiffré : un registre construit comme celui de technologies historiques, puis sécurisé après coup, hérite d’années de problèmes de chaîne d’approvisionnement difficiles à corriger rétroactivement. Si on construit un registre de paquets, on préfère concevoir des paquets signés et des capacités déclarées dès le premier jour plutôt que de les ajouter après. C’est une direction à laquelle on réfléchit, et ça ne change pas le calcul ci-dessus aujourd’hui.
Votre charge de travail est un flux à état, avec unicité, à très grande échelle
Mélodium a déjà de l’état : un modèle est un élément à état de longue durée par conception, et une connexion est déterministe sur chaque entrée parce qu’elle n’a qu’une seule source. Ce qui manque, c’est la livraison exactement une fois adossée à un message broker, et l’agrégation fenêtrée avec points de contrôle à très grande échelle, exactement ce pour quoi existent les moteurs de flux dédiés comme Flink.
Si ce dont vous avez besoin est plus simple, un job qui tourne sur un horaire ou en réaction à un webhook, c’est une demande prise en charge par un service : héberger un job directement, avec des déclencheurs cron et webhook, sans moteur devant déjà tourner ailleurs, est sur la feuille de route à court terme, voir la feuille de route de Cadence.CI .
Là où c’est la bonne réponse
Les pipelines qui mélangent entrées-sorties, transformation et services externes. Les charges de travail qui doivent passer d’une machine à plusieurs sans devenir un programme différent. Les systèmes où une frontière de données doit être démontrable plutôt que simplement décrite. Tout ce où la plomberie entre vos outils est devenue, sans qu’on l’ait choisi, le plus gros de votre code.