Questo comportamento dovrebbe essere modellato come entità o servizio di dominio?

2

Immagina di modellare SE (o SO) su DDD.

Hai deciso di implementare la "scheda" come radice aggregata. Quindi la scheda ha il metodo AddNewQuestion(string question) .

Esistono regole aziendali che impongono che un determinato gruppo di partner (si pensi alle aziende che pubblicizzano posti di lavoro) debbano essere avvisati della domanda taggata con i tag che hanno scelto di seguire.

Qual è l'approccio più pulito qui?

La creazione di una nuova domanda dovrebbe essere registrata come evento di dominio su una coda o qualcosa che un secondo servizio di notifica potrebbe raccogliere e consegnare? Devo modellare la pubblicazione su un servizio di dominio in modo che possa coordinare tra la bacheca, i servizi di notifica e così via? Dovrei rendere questa (notifica di terze parti) una responsabilità dell'entità del Consiglio?

    
posta Leonardo 11.07.2017 - 00:55
fonte

1 risposta

3

Should the creation of a new question be posted as an domain event to a queue or something that a latter notification service would pick up and deliver? Should I model the posting on a domain service so it can coordinate between the board, notification services and etc? Should I make this (notification of 3rd parties) a responsibility of the Board entity?

L'evento di dominio è quasi certamente il giusto punto di partenza.

L'impianto idraulico tra l'affioramento dell'evento di dominio e i consumatori potrebbe essere basato su push o pull.

Probabilmente hai almeno un altro pezzo di modello di business su cui lavorare: gli eventi per ogni dato argomento devono essere eseguiti oltre un punto nel modello che è a conoscenza dello stato delle attuali offerte per quell'argomento, sapere quale attività viene notificata dell'evento.

Should I model the posting on a domain service so it can coordinate between the board, notification services and etc?

Il servizio di dominio è l'idea sbagliata per un problema di orchestrazione; il modello a cui vuoi pensare qui è "process manager".

Should I make this (notification of 3rd parties) a responsibility of the Board entity?

No - separazione delle preoccupazioni.

    
risposta data 11.07.2017 - 03:11
fonte

Leggi altre domande sui tag