EP-001C-GO-DOMAIN-REPOSITORY-CONTRACT
EP-001C – Go-Domain- und Repository-Vertrag#
Zweck#
Dieser Contract bindet die Go-Materialisierung an Domain Model, Persistence Model und Solution Building Blocks.
Verbindliche Ports#
Artifact Repository#
- GlossarbegriffEin Artefakt ist jede eindeutig identifizierbare fachliche, technische, organisatorische oder reale Einheit, die in der Engineering-Landschaft modelliert wird. Alles Modellierbare wird als Artefakt geführt. Dazu gehören unter anderem Systeme, Beziehungen, Features, Dokumente, ADRs, Tests, UI-Buttons, Menüs, Farben, Icons, Konfigurationen, Diagramme, Runtime-Ressourcen, fachliche Objekte und reale Objekte wie ein Blumentopf, sofern sie modelliert werden. Knowledge ist keine Sonderklasse. UI- und Applikationsartefakte werden fachlich nach demselben Grundmodell behandelt.Glossareintrag vollständig lesen mit erster Revision transaktional erzeugen.
- neue unveränderliche Revision anhängen.
- erwartete aktuelle Revision zur Konflikterkennung prüfen.
- Artifact und Revision über stabile fachliche IDs lesen.
- Audit- und Outbox-Ereignis in derselben Transaktion schreiben.
Relationship Repository#
- GlossarbegriffEine Beziehung beschreibt eine nachvollziehbare Verbindung zwischen Bedeutungen, Artefakten und ihrem Kontext.Glossareintrag vollständig lesen über stabile Identität erzeugen.
- Relationship nach ID lesen.
- Relationships für ein Artifact lesen.
- spätere Relationship-Revisions dürfen den Port erweitern, ohne direkte Tabellenzugriffe anderer Module einzuführen.
Migration Runner#
- geordnete SQL-Migrationen aus einem bereitgestellten Dateisystem ausführen.
- angewendete Versionen in
schema_migrationsprotokollieren. - denselben Migrationssatz für Test und Produktion verwenden.
Architekturregeln#
- Domain-Typen kennen weder SQL noch HTTP noch JavaScript.
- Repository-Ports liegen beim fachlich zuständigen GlossarbegriffEin Building Block ist ein abgegrenzter Baustein mit stabiler Verantwortung zur Realisierung von Capabilities.Glossareintrag vollständig lesen.
- MariaDB-Adapter implementieren Ports, definieren aber keine neuen fachlichen Regeln.
- Ein Composition Root liefert Datenbanktreiber, Konfiguration und konkrete Adapter.
- Modulinterne Packages werden nicht von fremden Building Blocks importiert.
- Schreibvorgänge propagieren ActorId, RequestId und RoundtripId.
Mapping#
| Contract | Solution Building Block | Go-Bereich |
|---|---|---|
| Artifact Repository | BB-EP-003 | internal/artifacts |
| Relationship Repository | BB-EP-004 | internal/relationships |
| Localization Domain | BB-EP-005 | internal/localization |
| Translation Job Domain | BB-EP-007 | internal/translation |
| Audit Domain | BB-EP-008 | internal/audit |
| Roundtrip Domain | BB-EP-009 | internal/roundtrip |
| Migration Runner | BB-EP-010 | internal/persistence/migrations |
Unified-Artifact-Model-Vertrag#
Repository-Operationen müssen die Identitäts-, Revisions- und Provenance-Invarianten aus ArtifactMVP-001 – Einheitliche Artifact-Model-RealisierungSolutionweiter Realisierungsvertrag für Artefaktidentität, Revision, Lokalisierung, Beziehungen und kontrollierte Materialisierungen.Vollständig lesen erhalten. Technische Persistenz-IDs oder Pfade dürfen nicht als fachliche Identität an Application- oder Transportgrenzen austreten. Unaufgelöste Referenzen und Konkurrenzkonflikte werden explizit zurückgemeldet.