# Architektur-Review
## Dokumentenfamilie ADR002 · DM001 · DM002
### Review für ED (Engineering)

**Reviewer:** LA (Lead Architect)

---

# Gesamtbewertung

Die Dokumentenfamilie ist architektonisch konsistent und bildet eine tragfähige Grundlage für die nächsten Implementierungsschritte.

Aus Sicht der Architektur sind derzeit **keine grundlegenden Modelländerungen** erforderlich. Der Schwerpunkt liegt nun darauf, die erreichte Trennung der Verantwortlichkeiten konsequent beizubehalten.

---

# Architekturentscheidungen, die als stabil gelten

Die folgenden Entscheidungen sollten für die nächsten Work Packages als gesetzt betrachtet werden:

- Provenienzmodell: `SourceSystem → SourceDelivery → SourceValue`
- `DeliveryChannel` ist ein **Value Object**.
- `SourceValue` bleibt ein eigenständiges Aggregate.
- Die Aggregate-Grenzen in DM001 gelten als fachliche Grundlage.
- DM002 beschreibt ausschließlich das **Logical Persistence Model**.
- WP2 beschreibt ausschließlich die **technische Persistenzumsetzung**.
- `candidateProviderUri` ist der fachlich korrekte Begriff.
- *Immutable Provenance* bleibt ein zentrales Architekturprinzip.
- *Aggregate First* und *Persistence Ignorance* bleiben unverändert gültig.

Diese Entscheidungen sollten während der Implementierung nicht erneut diskutiert werden, solange sich die fachlichen Anforderungen nicht ändern.

---

# Verantwortlichkeiten der Dokumente

## ADR002

ADR002 beschreibt ausschließlich Architekturentscheidungen.

Hier werden neue fachliche Konzepte eingeführt und deren Beziehungen festgelegt.

Nicht Bestandteil sind:

- Attribute
- Persistenz
- Implementierungsdetails

---

## DM001

DM001 beschreibt ausschließlich das fachliche Domänenmodell.

Dazu gehören insbesondere:

- Domain Objects
- Aggregate
- Aggregate-Grenzen
- fachliche Invarianten
- Ubiquitous Language

DM001 beschreibt **keine** Persistenztechnologie.

---

## DM002

DM002 beschreibt ausschließlich das logische Persistenzmodell.

Dazu gehören:

- dauerhaft zu speichernder fachlicher Zustand
- Persistenzprinzipien
- persistente Beziehungen
- logische Integritätsregeln

Nicht Bestandteil sind:

- SQL
- Datenbankschema
- Tabellennamen
- Spaltennamen
- Repository-Implementierungen

---

## WP2

WP2 beschreibt ausschließlich die technische Umsetzung der Persistenz.

Hierzu gehören beispielsweise:

- Datenbankschema
- Migrationen
- relationale Repository-Implementierungen
- Data Mapper
- Indizes
- technische Constraints
- Transaktionsbehandlung
- Performanceoptimierungen
- Integrations- und Rehydrationstests

WP2 beantwortet ausschließlich die Frage:

> **Wie wird das logische Persistenzmodell technisch umgesetzt?**

---

# Empfehlungen für ED

## 1. Dokumentengrenzen konsequent einhalten

Bei jeder Erweiterung sollte geprüft werden:

- Ist es eine fachliche Entscheidung? → DM001
- Ist es eine logische Persistenzentscheidung? → DM002
- Ist es eine technische Implementierungsentscheidung? → WP2

Diese Trennung sollte konsequent erhalten bleiben.

---

## 2. Begriffswelt stabil halten

Folgende Begriffe sollten unverändert verwendet werden:

- SourceSystem
- SourceDelivery
- DeliveryChannel
- Provenance
- candidateProviderUri

Neue Synonyme sollten möglichst vermieden werden.

---

## 3. Keine Architektur in WP2 duplizieren

WP2 sollte keine fachlichen oder architektonischen Entscheidungen erneut erläutern.

Diese sind bereits in ADR002, DM001 und DM002 dokumentiert.

WP2 beschreibt ausschließlich deren technische Umsetzung.

---

## 4. Neue ADRs nur bei echten Architekturentscheidungen

Neue ADRs sollten nur entstehen, wenn tatsächlich neue Architekturentscheidungen getroffen werden.

Technische Detailentscheidungen gehören in der Regel nach WP2.

---

# Fazit

Die Dokumentenfamilie ADR002, DM001 und DM002 bildet inzwischen eine klare und konsistente Architekturbasis.

Für ED besteht die wichtigste Aufgabe nun nicht mehr darin, die Architektur weiterzuentwickeln, sondern ihre saubere Trennung zwischen

- Architektur,
- Domänenmodell,
- logischem Persistenzmodell
- und technischer Implementierung

bei allen weiteren Work Packages konsequent beizubehalten.
