# ADR001-WP2-003 -- Persistence Foundation

## LA Review Summary

**Status:** Accepted with minor clarifications\
**Reviewer:** LA\
**Adressat:** ED

------------------------------------------------------------------------

# Executive Summary

Der Entwurf für **WP2-003 Persistence Foundation** setzt die in ADR001
und den Workpackages WP2-001 (Runtime Architecture) sowie WP2-002
(Composition Root) festgelegte Architektur konsequent fort.

Die Persistence Foundation bleibt auf Infrastrukturaufgaben beschränkt
und führt noch keine fachliche Persistenzlogik ein. Dadurch entsteht
eine tragfähige Grundlage für die folgenden Workpackages:

-   WP2-004 Schema and Migrations
-   WP2-005 Relational Repositories and Data Mapper
-   WP2-006 Rehydration
-   WP2-007 Transactional Integration

Eine Änderung der Gesamtarchitektur ist nicht erforderlich.

------------------------------------------------------------------------

# Gesamturteil

**WP2-003 kann auf Grundlage des vorliegenden ADR implementiert
werden.**

Die vorgeschlagene Reihenfolge der Umsetzung ist fachlich und technisch
sinnvoll und entspricht der in ADR001 beschriebenen evolutionären
Migrationsstrategie.

------------------------------------------------------------------------

# Positiv hervorzuheben

-   klare Trennung zwischen Runtime und Persistenz
-   Infrastruktur bleibt von der Application Layer getrennt
-   keine Vorwegnahme von Repository-Implementierungen
-   PDO bleibt gekapselt
-   Vorbereitung für Data Mapper und Repositories ohne Architekturbruch
-   konsistente Fortführung der bisherigen Workpackages

------------------------------------------------------------------------

# Hinweise

## 1. Transaction Boundary

Es sollte darauf geachtet werden, dass die Application Layer nicht von
einer konkreten Infrastrukturklasse abhängt.

Empfehlung:

-   Verwendung eines kleinen Transaktionsvertrags (Interface) in der
    Application Layer
-   konkrete Implementierung ausschließlich in der Infrastructure Layer

Dadurch bleibt die in ADR001 definierte Repository Boundary vollständig
erhalten.

------------------------------------------------------------------------

## 2. Connection Lifetime

Die Lebensdauer der Datenbankverbindung sollte ausdrücklich dokumentiert
werden.

Empfohlen:

-   eine Connection je aufgebautem HTTP-Objektgraphen
-   keine globalen Singleton-Verbindungen
-   spätere Wiederverwendung durch eigene Composition Roots (CLI,
    Worker) möglich

------------------------------------------------------------------------

## 3. Scope von WP2-003

WP2-003 sollte weiterhin ausschließlich die technische Persistenzbasis
bereitstellen.

Nicht Bestandteil dieses Workpackages sind:

-   Repository-Fachlogik
-   SQL-Mapping der Aggregate
-   Rehydration
-   Persistenz fachlicher Invarianten

Diese Punkte bleiben den Folgepaketen vorbehalten.

------------------------------------------------------------------------

# Bewertung der Roadmap

Die aktuelle Reihenfolge

1.  WP2-001 Runtime Architecture
2.  WP2-002 Composition Root
3.  WP2-003 Persistence Foundation
4.  WP2-004 Schema and Migrations
5.  WP2-005 Relational Repositories and Data Mapper
6.  WP2-006 Rehydration
7.  WP2-007 Transactional Integration

ist aus architektonischer Sicht stimmig und sollte unverändert
beibehalten werden.

------------------------------------------------------------------------

# Risiken

Aktuell sind keine architekturrelevanten Risiken erkennbar.

Zu beobachten bleiben lediglich:

-   unbeabsichtigtes Abrutschen von Infrastruktur in die Application
    Layer,
-   zu frühe Einführung fachlicher Persistenzlogik,
-   Aufweichung der Repository Boundary.

Diese Risiken können weiterhin über Code Reviews kontrolliert werden.

------------------------------------------------------------------------

# Review-Ergebnis

**Review Status**

> **Accepted with minor clarifications**

Die genannten Hinweise dienen ausschließlich der Präzisierung. Sie
verändern weder den Zuschnitt des Workpackages noch die zugrunde
liegende Architekturentscheidung.

Aus Sicht der Architektur kann **WP2-003 Persistence Foundation**
umgesetzt werden.
