Dopo circa un mese dalla lettura e dalla ricerca di DDD, ho deciso di iniziare il mio progetto e ho creato DDD con questi contesti limitati>
- clienti
- Prodotti
- Ordini
- Fatturazione
Ogni contesto limitato ha API di riposo come livello di presentazione, livello di dominio, livello persistente.
Fin qui tutto bene, il codice funziona senza intoppi, ma proviene 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, ad esempio, voglio accedere all'elenco dei paesi. Devo:
a) creare un elenco di paesi in ciascun BC
b) creare un paesi BC -> API e utilizzarlo per ottenere un elenco di paesi disponibili
c) utilizzare un'API di terze parti e estrarre i dati tramite il livello anticorruzione in ciascun BC
- quando si integra con API di terze parti utilizzando un livello anti-corruzione 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 a cui voglio accedere e utilizzare in un client BC?
Se la mia app MVC sta effettivamente ottenendo dati dalle API (livelli di presentazione dei miei contesti limitati) trovo molto difficile definire chiaramente i confini di ciascun BC. Significa che un BC progettato correttamente servirebbe un singolo controller MVC senza la necessità di consumare API aggiuntive?