# 6. Phase 3: Direkte Systemintegration

# 6.1 Zielarchitektur

In Phase 3 wird die Abhängigkeit von Gevis als technischem Verteiler aufgehoben.

Die zentrale Stammdatenplattform verteilt Änderungen selbstständig an die angeschlossenen Systeme.

**Zentrale Stammdatenplattform**

↓

**Integrationsschicht / API**

↓

- Gevis
- AddOne
- Addison
- ggf. Unitrade
- weitere Systeme

Die zentrale Stammdatenplattform bleibt dabei das führende System.

# 6.2 Ereignisgesteuerte Synchronisation

Bei Anlage oder Änderung eines Stammdatensatzes wird ein Ereignis erzeugt.

Beispiele:

- `CustomerCreated`
- `CustomerUpdated`
- `SupplierCreated`
- `SupplierUpdated`
- `PaymentTermCreated`
- `PaymentTermUpdated`
- `DunningTermCreated`
- `DunningTermUpdated`

Die Integrationsschicht verarbeitet das Ereignis und überträgt die Änderung an die betroffenen Systeme.

# 6.3 Fehlerbehandlung

Ein Fehler in einem Zielsystem darf die Synchronisation anderer Systeme nicht verhindern.

Beispiel:

<table id="bkmrk-system-status-gevis-"><tbody><tr><td>System</td><td>Status</td></tr><tr><td>Gevis</td><td>erfolgreich</td></tr><tr><td>AddOne</td><td>erfolgreich</td></tr><tr><td>Addison</td><td>Fehler</td></tr></tbody></table>

Der zentrale Datensatz wird entsprechend als teilweise synchronisiert gekennzeichnet.

Fehlgeschlagene Übertragungen müssen erneut ausgeführt werden können.

# 6.4 Vermeidung von Synchronisationsschleifen

Das System muss verhindern, dass Änderungen zwischen Anwendungen endlos gegenseitig übertragen werden.

Jede Änderung benötigt daher mindestens:

- eindeutige Event-ID
- Quellsystem
- Zeitstempel
- Versionsnummer des Datensatzes

Das zentrale System muss erkennen können, ob eine empfangene Änderung bereits verarbeitet wurde.