Nachdem ich ungefähr einen Monat lang DDD gelesen und recherchiert hatte, beschloss ich, mein eigenes Projekt zu starten und DDD mit diesen begrenzten Kontexten zu erstellen
- Kunden
- Produkte
- Aufträge
- Abrechnung
Jeder begrenzte Kontext verfügt über eine Rest-API als Präsentationsschicht, Domänenschicht und persistente Schicht.
So weit so gut, Code läuft reibungslos, aber ich komme aus einer monolithischen Welt und versuche immer noch Folgendes herauszufinden:
- Wenn ich einen neuen Kunden erstellen, eine neue Rechnung ausstellen und eine neue Bestellung erstellen möchte, möchte ich beispielsweise auf die Liste der Länder zugreifen. Muss ich:
a) Erstellen Sie eine Liste der Länder in jedem BC
b) Erstellen Sie eine Länder-BC -> API und verwenden Sie diese, um eine Liste der verfügbaren Länder zu erhalten
c) Verwenden Sie eine Drittanbieter-API und ziehen Sie Daten über die Antikorruptionsschicht in jedem BC
- Welche Daten müssen bei der Integration in eine Drittanbieter-API mithilfe einer Antikorruptionsschicht oder einer Adapterschicht in mein Domänenmodell aufgenommen werden? Zum Beispiel, wenn ich eine zendesk-API in einen Client-BC integrieren möchte. Benötige ich nur eine Ticket-ID in meiner Domain oder muss ich alle Daten aus Zendesk extrahieren, auf die ich zugreifen und die ich in einem Client-BC verwenden möchte?
Wenn meine MVC-App tatsächlich Daten von APIs (Präsentationsebenen meiner begrenzten Kontexte) erhält, fällt es mir sehr schwer, die Grenzen jedes BC klar zu definieren. Bedeutet dies, dass ein ordnungsgemäß entworfener BC einen einzelnen MVC-Controller bedienen würde, ohne dass zusätzliche APIs verwendet werden müssten?