# Architektur-Dokumentation ## Übersicht Diese Dokumentation beschreibt die Architektur und Struktur des Projekts. Sie bietet einen Überblick über die wichtigsten Komponenten, deren Beziehungen und die zugrundeliegenden Architekturprinzipien. ## Inhalte - [Projektstruktur](/architecture/STRUKTUR-DOKUMENTATION.md) - Überblick über die Struktur des Projekts ## Architekturprinzipien Das Projekt folgt diesen grundlegenden Architekturprinzipien: 1. **Modulare Architektur**: Klare Trennung von Verantwortlichkeiten in Modulen 2. **Service-orientiertes Design**: Funktionalitäten als unabhängige Services 3. **Dependency Injection**: Abhängigkeiten werden explizit injiziert 4. **Event-basierte Kommunikation**: Lose Kopplung durch Events 5. **Schichtenarchitektur**: Trennung von Präsentation, Anwendungslogik und Daten ## Hauptkomponenten ### Framework-Kern Der Framework-Kern stellt grundlegende Infrastrukturkomponenten bereit: - **DI-Container**: Verwaltung von Service-Abhängigkeiten - **Event-System**: Event-basierte Kommunikation - **HTTP-Komponenten**: Request/Response-Handling - **Routing**: URL-zu-Controller-Mapping ### Anwendungsschicht Die Anwendungsschicht implementiert die Geschäftslogik: - **Services**: Implementierung von Anwendungsfunktionen - **Commands/Queries**: Command-Query-Separation-Prinzip - **Controllers**: HTTP-Request-Handling ### Domainschicht Die Domainschicht enthält die Kerngeschäftslogik: - **Entities**: Geschäftsobjekte mit Identität - **Value Objects**: Unveränderliche Wertobjekte - **Domain Services**: Domänenspezifische Logik ### Infrastrukturschicht Die Infrastrukturschicht bietet technische Funktionen: - **Persistenz**: Datenbankzugriff und -verwaltung - **Messaging**: Externe Kommunikation - **Integration**: Anbindung an externe Systeme ## Datenfluss Ein typischer Datenfluss im System: 1. HTTP-Request wird vom Router empfangen 2. Middleware-Pipeline verarbeitet den Request 3. Controller erhält den Request und delegiert an Services 4. Services implementieren die Geschäftslogik 5. Domain-Objekte repräsentieren den Geschäftszustand 6. Repositories speichern/laden Daten 7. Response wird erstellt und zurückgegeben ## Weitere Informationen Für detailliertere Informationen zur Architektur siehe die [Projektstruktur-Dokumentation](/architecture/STRUKTUR-DOKUMENTATION.md).