Sto lavorando per capire DDD e voglio vedere se questa idea è valida, se è una pratica comune e se ci sono insidie o complicazioni impreviste.
Voglio avere effettivamente una "entità" con una chiave primaria globalmente unica. Voglio usare il sourcing di eventi. Vorrei che diverse classi AR rappresentassero questa "entità" a seconda del contesto.
Ad esempio, in un sito di e-commerce avrei diversi tipi di pagine (pagine di contenuto statico, pagine di categorie, pagine di prodotto). Avrei anche dei prodotti. Dovrebbe esserci una mappatura 1: 1 tra un prodotto e una pagina prodotto, in effetti un sottotipo ProductPage di Page con un unico ID univoco che rappresenta sia la pagina che i componenti del prodotto.
Quando nel contesto della gestione dei contenuti, caricherò tutti gli eventi Page per quell'ID per ricostruire il mio oggetto Page AR, fare qualsiasi azione Page correlata e salvare gli eventi Page appropriati (ex . %codice%).
Quando nel contesto della gestione del prodotto, caricherò tutti gli eventi Page.EditContent() per quell'ID per ricostruire l'oggetto Product AR, fare qualsiasi azione Product relativa e salvare gli eventi Product appropriati ( ex. Product ).
Quindi, quando generi il mio modello di lettura, caricarei tutti gli eventi per quell'ID per costruire un Product.SetPrice() e salvarlo nel database del modello letto.
Questo è un modo corretto di fare questo o è una cattiva idea per qualche motivo che non riesco a vedere? O c'è un modo migliore?