Dopo circa un mese dalla lettura e dalla ricerca di DDD, ho deciso di avviare il mio progetto e creato DDD con questi contesti limitati >
- Clienti
- Prodotti
- Ordini
- Fatturazione
Ogni contesto limitato ha un'API di riposo come livello di presentazione, livello dominio, livello persistente.
Fin qui tutto bene, il codice sta andando liscio, ma provenendo da un mondo monolitico, sto ancora cercando di capire quanto segue:
- quando voglio creare un nuovo cliente, emettere una nuova fattura, creare un nuovo ordine che voglio, ad esempio, accedere all'elenco dei paesi. Faccio io:
a) crea un elenco di paesi in ogni BC
b) crea un Paese BC - > API e usalo per ottenere un elenco di paesi disponibili
c) usa un'API di terze parti e carica i dati tramite il livello di anticoruzione in ogni BC
- durante l'integrazione con API di terze parti che utilizzano un layer anti-coruption o un livello adattatore, quali dati devono essere inclusi nel mio modello di dominio? Ad esempio se voglio integrare un'API zendesk con un client BC. Ho bisogno solo di un ticketID nel mio dominio o devo estrarre tutti i dati da Zendesk che voglio accedere e utilizzare in un client BC?
Se la mia app MVC sta effettivamente recuperando dati dalle API (livelli di presentazione dei miei contesti limitati) trovo molto difficile definire chiaramente i limiti di ogni BC. Significa che un BC progettato correttamente dovrebbe servire un singolo controller MVC senza la necessità di utilizzare API aggiuntive?