Welche Vor- und Nachteile bietet die Implementierung einer Hexagonalen Architektur (Ports and Adapters) im Vergleich zu einer klassischen Layered Architecture?

Die klassische Layered Architecture organisiert Software in horizontalen Schichten (z. B. Presentation, Business, Data Access), wobei die Abhängigkeiten linear von oben nach unten verlaufen. Die Hexagonale Architektur hingegen stellt die Domänenlogik ins Zentrum und entkoppelt diese über Ports (Interfaces) von der Außenwelt (Adapters).

KriteriumLayered ArchitectureHexagonale Architektur
AbhängigkeitenLinear / Top-DownInward (Richtung Core)
TestbarkeitOft DB-abhängig (Integrationstests)Hoch (Unit-Tests via Mocking)
FlexibilitätGering (Technologie-Bindung)Hoch (Austauschbare Adapter)
KomplexitätNiedrig (schnelles Setup)Höher (mehr Boilerplate-Code)

In einer Layered Architecture führt die direkte Abhängigkeit der Business-Logik von der Datenzugriffsschicht häufig dazu, dass technische Details der Datenbank in die Geschäftslogik einfließen. Dies erschwert den Wechsel von Technologien oder die Einführung neuer Kommunikationswege erheblich.

Die Hexagonale Architektur löst dieses Problem durch Dependency Inversion. Die Geschäftslogik definiert über Ports, welche Daten sie benötigt, während der Adapter die technische Umsetzung (z. B. SQL, NoSQL, REST) übernimmt. Wir nutzen diesen Ansatz insbesondere bei Projekten, die eine hohe Lebensdauer und skalierbare Anforderungen haben. Die Trennung ermöglicht es uns, die Domäne unabhängig von Frameworks oder externen APIs zu entwickeln. Im Rahmen unserer IT-Consulting & Digitale Strategie bewerten wir die Architekturwahl basierend auf der erwarteten Volatilität der technischen Infrastruktur.

Ein Nachteil der Hexagonalen Architektur ist der erhöhte Aufwand bei der initialen Implementierung. Es müssen mehr Interfaces und Mapping-Klassen erstellt werden, um die strikte Trennung zwischen Domänenmodellen und Infrastrukturmodellen zu gewährleisten.

Wir empfehlen die Hexagonale Architektur für alle Projekte mit komplexer Geschäftslogik und einer geplanten Laufzeit von mehreren Jahren. Die initiale Investition in die Struktur amortisiert sich schnell durch reduzierte Wartungskosten und eine deutlich höhere Testabdeckung. Für einfache CRUD-Anwendungen ohne komplexe Logik bleibt die Layered Architecture aufgrund ihrer geringeren Komplexität die effizientere Wahl.

Sergej Wiens

Sergej Wiens

Gründer & Software Architekt