In base a DDD (Blue book, Evans) una Factory ha la responsabilità di creare una radice di aggregazione in uno stato valido. Significa che dovrebbe essere in grado di creare l'id tecnico (objectId nel mondo mongoDB) e l'id del dominio?DDD e MongoDB: Va bene lasciare che Mongo crei ObjectIDs?
Da un lato, questo sembra un dettaglio tecnico e sembrerebbe giusto lasciare che Mongo gestisca la creazione dell'ID.
D'altra parte, l'esecuzione di query che consente da id (avendo getById
in un repository DDD) espone l'id tecnica al dominio, che a sua volta renderebbe la responsabilità della fabbrica per crearlo.
Forse non riesco a capire i diversi casi d'uso/sovrapposizione, ecc. Di Id tecnico vs DomainId o forse sono troppo zelante, ma apprezzerei comunque la tua opinione.
In breve: In DDD: una factory può essere in grado di creare l'ID tecnico e l'ID dominio?
possibile implementazione: Hi/Lo (How to set the hilo sequence starting value in MongoDB Norm?)
EDIT: anche se il/lo modo hi espone la fabbrica allo strato di persistenza, che è qualcosa che solo il repository dovrebbe sapere. hmmm
Grazie
Minore commento non pertinente; MongoDB non crea in realtà gli ID, il client (driver) lo fa (ad eccezione delle operazioni di upsert). –