Dovresti analizzare tutte le differenze di comportamento dai reparti per prendere la decisione architettonica corretta. Il caso più semplice è quello in cui si realizza un solo prodotto (un singolo contesto limitato, ad esempio TaskManagement) utilizzato da tutti i reparti.
Da quanto ho capito finora, le differenze riguardano solo l'autorizzazione: alcuni reparti possono assegnare compiti solo ad alcuni utenti, altri reparti possono assegnare compiti a tutti utenti e così via. Questo può essere estratto in un modulo separato che corrisponde a un contesto limitato separato: Autorizzazione. Ciò significa che il contesto limitato TaskManagement non è influenzato da queste differenze, un'attività ha lo stesso comportamento per tutti i reparti.
L'autorizzazione è ampiamente discussa su libri / Internet, ma come un piccolo suggerimento di implementazione, è possibile effettuare le chiamate al contesto limitato Autorizzazione nel livello Applicazione, prima delle chiamate agli Aggregati dal contesto limitato TaskManagement; l'interfaccia utente utilizza anche il contesto limitato Autorizzazione, per caricare l'elenco utenti corrispondente quando viene assegnata un'attività.
TaskManagement è un contesto limitato che può consentire soluzioni off-the-shelf. Ad esempio, Jira viene utilizzata da molte aziende e da tutti i dipartimenti di tali società. Nel caso peggiore, è possibile avere diverse istanze dell'applicazione TaskManagement per ciascun reparto, con un database diverso, ma con lo stesso codice sorgente.