Modularisierung eines Monolithen mit Elixir's Hot Code Reloading
Alzo, eine Elixir-Monolithanwendung, die pro Kunde mit einer Instanz bereitgestellt wird, nutzt Elixirs und die Erlang VMs Hot-Code-Loading-Funktionen für kundenspezifische Features. Dies vermeidet kaskadierende Fehler und komplexe Tests von Microservices. Kundenspezifische LiveView-Anwendungen befinden sich in `/alzo/lib/clients/apps` und werden zum Start dynamisch geladen. Der Kundencode wird während des Build-Prozesses entfernt, wodurch verhindert wird, dass die Hauptanwendung von Laufzeit-Anwendungen abhängt. Hot-Code-Upgrades werden der Einfachheit halber vermieden. Dieser Ansatz bietet effizientes Entwickeln, Wartbarkeit, Skalierbarkeit und die Möglichkeit, gemeinsam genutzte Funktionalitäten von dynamischen Anwendungen einfach in die Hauptcodebasis zu refaktorisieren.
Mehr lesen