Les développeurs Java sont souvent confrontés aux déploiements fatjar, où l'ajout ou la mise à jour de modules nécessite de reconstruire et redémarrer toute l'application. La communauté du framework Solon a proposé deux stratégies complémentaires d'extension de plugins pour résoudre ce problème. E-Spi (SPI externe) permet d'ajouter des extensions via une configuration externe et des JAR de plugins, gardant l'application principale légère. C'est simple et fiable, mais nécessite un redémarrage pour prendre effet, ce qui convient aux scénarios d'externalisation de configuration et de découpage de modules. H-Spi (SPI à chaud), quant à lui, utilise un ClassLoader indépendant pour charger et décharger les modules à l'exécution, permettant un vrai hot-plugging sans temps d'arrêt. Cette approche est puissante pour le basculement dynamique de fonctionnalités et les environnements multi-locataires, mais exige une gestion stricte du cycle de vie des ressources pour éviter les fuites mémoire et les conflits de ClassLoader. Le choix entre les deux dépend de votre priorité : simplicité opérationnelle ou flexibilité à l'exécution. Ce modèle architectural ne se limite pas à Solon – il peut inspirer des conceptions similaires dans d'autres frameworks Java, surtout pour les équipes construisant des plateformes pilotées par plugins ou des microservices nécessitant une évolution modulaire.
Découvrez E-Spi et H-Spi, deux mécanismes d'extension de plugins pour applications Java qui résolvent les problèmes de déploiement fatjar, avec des compromis entre simplicité de redémarrage et flexibilité de hot-swap.