Modulariser un monolithe avec le rechargement à chaud du code Elixir
Alzo, un monolithe Elixir déployé en une instance par client, utilise le chargement à chaud du code d'Elixir et de la VM Erlang pour les fonctionnalités spécifiques aux clients. Cela évite les pannes en cascade et les tests complexes des microservices. Les applications LiveView spécifiques aux clients résident dans `/alzo/lib/clients/apps`, chargées dynamiquement au démarrage. Le code client est supprimé pendant le processus de compilation, empêchant l'application principale de dépendre des applications d'exécution. Les mises à niveau de code à chaud sont évitées pour simplifier. Cette approche fournit un développement efficace, une maintenabilité, une évolutivité et la capacité de refactoriser facilement les fonctionnalités communes des applications dynamiques vers le code base principal.