# WP3-001-005 – Runtime Integration

- **Status:** Draft
- **Version:** 0.2
- **Scope:** WP3 – Discovery Framework Foundation
- **Owner:** ED
- **Review:** PL, LA

## Änderungsstand

### Version 0.2

Einarbeitung von LA Review 001.

**Änderungen**

- CandidateDiscoveryAdapterRegistry ergänzt.
- Compatibility Adapter präzisiert.
- Rückgabetyp auf `DiscoveredCandidate[]` umgestellt.
- Integrationspunkte aktualisiert.
- Laufzeitmodell erweitert.
- KISS-Prinzip beibehalten.

---

## Referenzen

- WP3-001 – Discovery Framework Foundation
- WP3-001-001 – Discovery Route Model
- WP3-001-002 – Discovery Configuration Registry
- WP3-001-003 – Candidate Discovery Adapter Contract and Registry
- WP3-001-004 – Candidate Discovery Router
- PRE_WP3-001 – Architekturübersicht Discovery Framework
- ADR002 – Source Delivery Model
- DM001 – Domain Model
- DM002 – Persistence Model

---

# 1. Ziel

Dieses Work Package integriert das Discovery Framework in den bestehenden Reconcilix-Laufzeitpfad.

Nach Abschluss von WP3-001-005 erfolgt jede Candidate Discovery über den CandidateDiscoveryRouter.

Das fachliche Discovery-Verhalten bleibt unverändert.

---

# 2. Scope

Dieses Work Package umfasst ausschließlich

- Integration des CandidateDiscoveryRouter in den bestehenden Runtime-Pfad
- Anpassung des Composition Root
- Registrierung der DiscoveryConfigurationRegistry
- Registrierung der CandidateDiscoveryAdapterRegistry
- Registrierung des LegacyDiscoveryCompatibilityAdapter
- Integrationstests
- Regressionstests

Nicht Bestandteil sind

- neue Discovery-Verfahren
- produktive xTree-Integration
- produktive Local-Reconciliation-Store-Neuimplementierung
- Änderungen an Domain Model
- Änderungen am Persistence Model

---

# 3. Architekturbezug

WP3-001-005 verbindet die in WP3-001-001 bis WP3-001-004 eingeführten Komponenten mit der bestehenden Reconcilix-Runtime.

Das Discovery Framework wird Bestandteil des produktiven Reconciliation-Flows.

Die bestehende Discovery wird während der Übergangsphase unverändert über einen Compatibility Adapter verwendet.

---

# 4. Klassenübersicht

| Klasse | Typ | Status | Verantwortung |
|---------|-----|--------|----------------|
| CandidateDiscoveryRouter | Class | Bestehend | Einstiegspunkt des Discovery Frameworks |
| DiscoveryConfigurationRegistry | Class | Bestehend | Verwaltung der Discovery Routes |
| CandidateDiscoveryAdapterRegistry | Class | Bestehend | Verwaltung der Candidate Discovery Adapter |
| LegacyDiscoveryCompatibilityAdapter | Class | Neu | Übergangsadapter zur bestehenden Discovery |
| Composition Root | Infrastruktur | Anpassung | Verdrahtung aller Komponenten |

---

# 5. Integrationspunkte

Folgende bestehende Komponenten werden angepasst:

- Composition Root
- RuntimeFactory (falls erforderlich)
- RuntimeContext (falls erforderlich)
- CandidateDiscoveryGateway
- ReconciliationApplicationService (falls erforderlich)

Folgende neue Komponenten werden registriert:

- DiscoveryConfigurationRegistry
- CandidateDiscoveryAdapterRegistry
- LegacyDiscoveryCompatibilityAdapter
- CandidateDiscoveryRouter

Das fachliche Verhalten bleibt unverändert.

---

# 6. Laufzeitfluss

Nach Abschluss dieses Work Packages ergibt sich folgender Aufrufpfad:

```text
ReconciliationApplicationService
        │
        ▼
CandidateDiscoveryGateway
        │
        ▼
CandidateDiscoveryRouter
        │
        ├── DiscoveryConfigurationRegistry
        │
        ├── CandidateDiscoveryAdapterRegistry
        │
        ▼
LegacyDiscoveryCompatibilityAdapter
        │
        ▼
bestehende Candidate Discovery
        │
        ▼
DiscoveredCandidate[]
```

Während WP3-001-005 wird ausschließlich der Einstiegspunkt ersetzt.

Die bestehende Discovery bleibt unverändert.

---

# 7. Verantwortlichkeiten

WP3-001-005

- integriert das Discovery Framework,
- verdrahtet die neuen Infrastrukturkomponenten,
- verändert keine Discovery Methods,
- verändert keine Candidate Discovery,
- verändert keine Match-Logik,
- verändert keine DiscoveredCandidate.

---

# 8. Implementierungsreihenfolge

1. DiscoveryConfigurationRegistry registrieren.
2. CandidateDiscoveryAdapterRegistry registrieren.
3. LegacyDiscoveryCompatibilityAdapter registrieren.
4. CandidateDiscoveryRouter registrieren.
5. Composition Root anpassen.
6. Runtime verdrahten.
7. Regressionstests durchführen.
8. Integrationstests durchführen.

---

# 9. Deliverables

## Neue Runtime-Konfiguration

- DiscoveryConfigurationRegistry
- CandidateDiscoveryAdapterRegistry
- CandidateDiscoveryRouter
- LegacyDiscoveryCompatibilityAdapter

## Angepasste Komponenten

- Composition Root
- Runtime-Konfiguration

## Tests

- Integrationstests
- Regressionstests

---

# 10. Akzeptanzkriterien

Das Work Package ist abgeschlossen, wenn

1. sämtliche Discovery-Anfragen über den CandidateDiscoveryRouter laufen,
2. DiscoveryConfigurationRegistry und CandidateDiscoveryAdapterRegistry vollständig integriert sind,
3. der LegacyDiscoveryCompatibilityAdapter verwendet wird,
4. die bestehende Discovery weiterhin dieselben `DiscoveredCandidate[]` liefert,
5. keine Änderungen am fachlichen Discovery-Verhalten auftreten,
6. alle bestehenden Tests erfolgreich sind,
7. alle neuen Integrationstests erfolgreich sind.

---

# 11. Out of Scope

Nicht Bestandteil sind

- produktive Local Reconciliation Store Adapter
- produktive xTree Candidate Discovery Adapter
- HTTP
- REST
- SPARQL
- mehrere aktive Discovery Routes
- Priorisierung
- Hybrid Discovery
- Ranking
- Result Fusion
- neue Discovery Methods

---

# 12. Auswirkungen auf Folgepakete

Nach erfolgreichem Abschluss von WP3-001 ist das Discovery Framework vollständig Bestandteil der Reconcilix-Runtime.

Die folgenden Work Packages implementieren anschließend produktive Candidate Discovery Adapter:

- ED-04-007 – `source_value.source_delivery_id`
- ED-04-008 – `delivery_id` aus OpenRefine übernehmen
- WP3-002 – Local Reconciliation Store Adapter
- WP3-003 – xTree Candidate Discovery Adapter
- WP3-004 – Discovery Configuration Integration
- WP3-005 – End-to-End Candidate Discovery