La situazione. Diciamo che un processo in background mette le cose in contenitori di dati. Funziona tutto il tempo, osserva gli eventi di sistema e popola i dati di conseguenza.
L'utente può avviare un'applicazione del pannello di controllo. Con questa applicazione, l'utente può definire nuovi contenitori, rinominare o eliminare quelli vecchi. Il pannello è separato dal processo reale del cavallo di battaglia per non prenderlo accidentalmente quando si blocca.
Per l'esempio, supponiamo che il processo in background aumenti di un contatore per ogni contenitore di 1 ogni minuto. È un contatore di vita. Ha bisogno di sapere dei contenitori. È l'unico processo che modifica i contatori, però.
Il pannello di controllo dovrebbe visualizzare un elenco di contenitori e il conteggio corrente. Dovrebbe aggiornare un conteggio visualizzato quando necessario (ad esempio quando il contatore è cambiato nel frattempo). Ha bisogno di leggere i dati ma non di scriverli, tranne forse per la modifica del set di contenitori.
La domanda. Entrambi i processi operano su un dominio simile. Entrambi hanno bisogno di sapere su contenitori e conteggi. Fanno solo cose diverse con loro. Ora, come modellerai questo in termini di DDD?
Ho riflettuto sul fatto che fossero contesti limitati diversi, ma dal momento che il dominio sembra essere esattamente lo stesso, non c'è alcun indicatore che ciò sia necessario. La separazione tra entrambi è puramente tecnica. Forse fare qualche tipo di RPC?
Come dovrebbero i processi condividere i dati? Se il pannello di controllo diventa un processo di sola lettura, accedere allo stesso archivio dati in cui il processo in background scrive e delegare la creazione del contenitore al processo in background in modo che la scrittura sia unificata? (È già presente questo CQRS?)