Come archiviare efficacemente gli aggregati nel modello degli attori

1

Sono alle prese con gli aggregati nel modello degli attori (akka) e come conservare il loro stato. Mi chiedo quale sia il ruolo del repository nel modello di attore in DDD.

Ho una situazione in cui la mia radice aggregata crea un altro aggregato come risultato. Ma internamente, AR crea innanzitutto un attore e quindi invia messaggi aggiuntivi ad esso nel ciclo foreach in modo che il nuovo aggregato appena creato aggiorni il suo stato diverse volte e quindi ho bisogno di memorizzarlo.

1. Stavo pensando di registrare "modifiche non vincolate" in modo aggregato, quindi in questo caso avrei potuto inviare GetUncommittedChanges () a questo aggregato e ricevere i dati richiesti.

2. Il secondo approccio potrebbe essere quello di mantenere il riferimento al repository in forma aggregata, ma sono scettico su questo. Ma il messaggio da aggregare potrebbe essere solo: SaveYourself ()

3. Il terzo approccio è forse il più pulito: che ogni aggregato pubblicherà l'evento e in base a quello che colpisce db più volte? per esempio. AggregateCreated (somedata), AggregateUpdated (additionalData), AggregateUpdated (..) 20 volte ... come gestirlo correttamente?

    
posta Slimer 23.06.2017 - 21:04
fonte

1 risposta

1

La responsabilità del servizio applicativo che gestisce AR è di caricare e persistere l'aggregato. Inoltre, è responsabile della pubblicazione di eventi di dominio emessi a seguito di cambiamenti nello stato di un aggregato.

    
risposta data 14.12.2018 - 22:18
fonte

Leggi altre domande sui tag