Schon im alten Rom stellte der Architekt Vitruv (Marcus Vitruvius Pollio) Prinzipien auf, die bis heute gelten – nicht nur im Gebäudebau, sondern auch in der Softwarearchitektur. Seine berühmte Dreieinigkeit – Firmitas, Utilitas und Venustas – beschreibt, was gute Architektur ausmacht: Stabilität, Funktionalität und Attraktivität.
Vitruvs Architekturprinzipien im Bauwesen
Vitruv formulierte zwischen 33 und 22 v. Chr. um 15 v. Chr. sein Werk De architectura, in welchem er postulierte, dass ein Gebäude nur dann als gelungen gelten könne, wenn es drei Anforderungen erfüllt1:
Firmitas – Stabilität:
Ein Bauwerk muss dauerhaft und fest stehen, widerstandsfähig gegenüber Witterung und Belastung sein.
Beispiel: Die römischen Aquädukte überdauerten Jahrhunderte durch massive Steinbögen und ausgeklügelte Statik.
Utilitas – Zweckmäßigkeit:
Ein Gebäude muss seinem vorgesehenen Zweck dienen – seien es Wohnhäuser, Tempel oder Bäder.
Beispiel: Das Kolosseum mit seinen 80 Eingängen war so konzipiert, dass über 50.000 Menschen in kürzester Zeit ein- und ausströmen konnten.
Venustas – Schönheit:
Architektur soll auch ästhetisch ansprechend sein und die Sinne ansprechen.
Beispiel: Die Proportionen des Pantheon basieren auf mathematischer Harmonie, die bis heute als schön empfunden wird.
Übertragung auf Softwarearchitektur
So wie Gebäude diesen drei Prinzipien folgen, sollten auch digitale Systeme Firmitas, Utilitas und Venustas vereinen. Auch Software muss stabil laufen, mehrwertstiftende Funktionalität bieten und sie wird wahrgenommen – von Nutzenden, aber auch von Entwickelnden.
Firmitas – Stabilität und Dauerhaftigkeit
In der Softwarearchitektur bedeutet das: Dein System bleibt stabil – selbst unter Last oder im Fehlerfall. Oder es kann bei einem Ausfall schnell wiederhergestellt werden.
Das erreichst du z. B. durch:
- Redundanz & Failover
≥ 2 Pods + Anti-Affinity über Zonen, shared Storage; PostgreSQL-Cluster mit Patroni - Fehlertoleranz
Timeouts, Retries, Bulkheads; Monitoring via Prometheus - Backup & Recovery
Snapshots mit Velero/pgBackRest, Infrastruktur über Terraform,pg_restore+ DR-Tests - Monitoring & Self-Healing
Grafana/ELK-Kombi, Kubernetes-Restarts, Argo Rollouts, KEDA für Autoskalierung - Robuste APIs
Rückwärtskompatible REST/gRPC-Schnittstellen mit OpenAPI/Protobuf
Utilitas – Nutzen und Funktion
Architektur muss ihrem Zweck dienen.
Eine durchdachte Softwarearchitektur stellt sicher, dass die an sie gestellten Anforderungen erfüllt werden. Im Unterschied zu Gebäuden wird eine Software häufig angepasst, bzw. erweitert. D.h. die Architektur muss sicherstellen, dass dies wirtschaftlich erfolgen kann.
Das erreichst du z. B. durch:
- Zweckorientierte Architektur
Muster, die Entwicklung & Wartung langfristig unterstützen - Modularität
Hexagonale Architektur oder Clean Architecture trennt Domäne und Technik - Domain-Driven Design (DDD)
Bounded Contexts, klare Serviceverantwortung - Skalierbarkeit
Event-Driven Microservices mit Kafka oder RabbitMQ - Konfigurierbarkeit
Feature Toggles (z. B. openfeature.dev), Plugin-Systeme - API-First
Stabile Schnittstellen, unabhängig deploybare Front- & Backends
Venustas – Attraktivität und Erlebnis
Gute Architektur spricht unsere Sinne an.
Im digitalen Raum zeigt sich das durch eine hohe Developer Experience (DX), klare Schnittstellen und verständlichen Code.
Das erreichst du z. B. durch:
- Developer Experience (DX)
Strukturierter Code, gute Doku, konsistente Dev-Umgebungen - Konsistente APIs
REST/GraphQL, sprechende Endpoints, passende Granularität - Lesbarer Code
Linter, Formatter, Styleguides, Peer-Reviews - Modularität im Frontend
Micro-Frontends, Komponentenbibliotheken, Monorepos - UX-optimierte Backends
Backend-for-Frontend (BFF), GraphQL für clientspezifische Payloads - DX-Tools
Schnelle CI/CD-Pipelines, Docker-basierte Dev-Umgebungen
Fazit: Gute Architektur ist interdisziplinär
Auch wenn Gebäude und Software völlig unterschiedliche Dinge sind – gute Architektur bleibt interdisziplinär. Sie vereint Funktion, Stabilität und Ästhetik.
Frage dich bei jedem Architekturentwurf:
Lebt dein System Firmitas, Utilitas und Venustas?



