Monolith (monolithische Architektur) bezeichnet in der Softwareentwicklung eine Anwendung, die als ein einziges, zusammenhängendes Programm gebaut, gestartet und bereitgestellt wird. Sämtliche Funktionen — Oberfläche, Geschäftslogik und Datenzugriff — laufen in einem gemeinsamen Prozess und teilen sich dieselbe Codebasis.
Merkmale eines Monolithen
- Eine Codebasis: Alle Module liegen in einem Projekt, das gemeinsam versioniert und gebaut wird.
- Ein Deployment: Die Anwendung wird als ein Paket ausgeliefert und auf einem oder mehreren Servern gestartet.
- Gemeinsamer Prozess: Module kommunizieren über direkte Funktionsaufrufe statt über Netzwerke.
Vorteile
- Einfacher Einstieg — gerade für kleine Teams und Prototypen.
- Weniger Infrastruktur: keine Service-Trennung, kein Orchestrierungsaufwand.
- Testing und Debugging laufen in einem einzigen Prozess.
- Transaktionen über mehrere Fachbereiche hinweg sind unkompliziert.
Nachteile
- Skalierung nur als Ganzes: Ein Engpass in einem Modul bedeutet mehr Ressourcen für die gesamte Anwendung.
- Die Codebasis wächst — Build- und Deployment-Zeiten nehmen zu, Änderungen werden risikoreicher.
- Ein Fehler in einem Modul kann die ganze Anwendung lahmlegen (fehlende Isolation).
Monolith oder Microservices?
Die Alternative ist die Mikroservice-Architektur, bei der viele kleine, eigenständige Dienste über Schnittstellen zusammenarbeiten. Microservices bringen Flexibilität und Isolation, aber auch deutlichen Betriebsaufwand (Netzwerk, Deployment, Monitoring).
Bewährt ist der Monolith-First-Ansatz: Mit einem Monolithen starten und erst bei konkretem Bedarf Teile herauslösen — zum Beispiel mit dem Strangler-Pattern, das Funktionen schrittweise in eigene Dienste verschiebt. Der modulare Monolith ist eine Zwischenstufe: klare Modulgrenzen im Code, aber weiterhin ein gemeinsames Deployment. Beim Zerlegen helfen Refactoring, klare Schnittstellen und Dependency Injection.
Fazit
Der Monolith ist kein Fehler, sondern oft der pragmatischste Startpunkt. Cloud-Umgebungen und Container erleichtern den späteren Umbau, entscheidend bleiben aber saubere Modulgrenzen von Anfang an.