Supponiamo che ci siano più contesti con la stessa entità logica ma con differenti nozioni. La creazione di una tale entità dovrebbe avere l'effetto collaterale che in tutti gli altri contesti dovrebbe essere creata la stessa entità logica.
Lo faccio semplicemente inviando un evento di dominio che contiene tutti i campi obbligatori per tutti i contesti. Il problema è che il contesto che inizialmente crea la nuova entità è strettamente collegato a tutti gli altri contesti in quanto deve creare l'evento di dominio corretto con tutti i campi richiesti da altri contesti. Come rimuoverò quell'accoppiamento?
Esempio
Diciamo che per un software di gestione della formazione ho scoperto i contesti Finanza e Formazione. Entrambi i contesti condividono l'entità logica Studente. Mentre in Finanza uno studente ha un numero IBAN, in Formazione questa informazione è inutile.
Ora voglio implementare il caso d'uso "Registrati studente". Questa registrazione dovrebbe essere atomica, cioè l'entità dovrebbe esistere in tutti i contesti. In realtà ho quindi creato un ulteriore contesto di registrazione. Ora sono preoccupato che il contesto che inizialmente crea l'entità abbia bisogno di conoscere i dettagli di ogni altro contesto su questa entità.
Questo in qualche modo si scontra con l'idea che un contesto dovrebbe creare un modello coesivo. In questo caso Insegnamento e finanza sono coerenti, ma la registrazione non lo è. E non importa dove sposterei la creazione di quell'entità, sono sempre accoppiata ad altri contesti.
Supponiamo che cambierò l'entità nel contesto finanziario aggiungendo un ulteriore campo per es. credito. Ora devo toccare Finanza e il contesto di registrazione.
Vedi un modo per evitare quell'accoppiamento?